2015-06-08 18 views
0

另一個控制器我有我的控制器功能是這樣的:如何調用模型函數內幕CakePHP中

private function _send_refund_scores($userId,$scores,$orderId){ 
      $this->loadModel('Score'); 
      $rtn = $this->Score->refund_user_scores($userId,$scores,$orderId); 
      if(!empty($rtn)){ 
       return true; 
      }else return false; 
} 

而在另一個模型得分,我有借鑑作用refund_user_scores;

錯誤是這樣的:

SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法錯誤 ;檢查對應於您 MySQL服務器版本正確的語法在1號線

這麼近 「refund_user_scores」使用手冊,任何想法?

+0

檢查'refund_user_scores'是否是私人或公共職能。 –

+0

是否在插件內定義了分數?如果是這樣,您需要使用帶有插件語法的'loadModel()':'$ this-> loadModel('PluginName.Score')'。 – drmonkeyninja

回答

0

我想你已經在模型Score中定義了refund_user_scores()作爲私有函數。

這就是爲什麼你得到這個錯誤。

+0

謝謝,我發現問題:控制器和模型應該在同一個文件夾中,所以控制器可以找到模型函數 – lipengyu

+0

@lipengyu這聽起來不正確。您的模型和控制器應該位於其各自的模型和控制器文件夾中。這聽起來像是你的代碼結構可能有更大的問題! – drmonkeyninja

+0

我的意思是有一個父模型文件夾包含僕人模型和一個父控制器文件夾也包含僕人控制器;和其中一個子控制器要調用另一個模型功能,所以該模型的父文件夾應該在父控制器文件夾相同的文件夾內。 – lipengyu