2012-05-05 63 views
2

我正在關注「TrackStar」項目中的Agile Web Application Development with Yii 1.1 and PHP5。對於我的生活,我無法理解我的問題在哪裏。 我發現了異常:CActiveDataProvider不解析條件中的參數

CDbCommand未能執行SQL語句:SQLSTATE [HY093]:無效的參數號:沒有定義的參數。執行的SQL語句是:SELECT COUNT(*)FROM tbl_issuet WHERE PROJECT_ID =:專案編號

看來(這個菜鳥的解釋),在我的CActiveDataProvider的params爲一些標準怎麼不解決如查看:

(in /protected/controllers/ProjectController.php) 

55   public function actionView() 
56   { 
57    $issueDataProvider = new CActiveDataProvider('Issue', array(
58     'criteria' => array(
59      'condition' => 'project_id=:projectId', 
60      'params' => array(':projectId=' => $this->loadModel()->id), 
61    ), 
62     'pagination' => array( 
63      'pageSize' => 1, 
64    ),  
65   )); 
66    $this->render('view',array(
67      'model'=>$this->loadModel(), 
68      'issueDataProvider' => $issueDataProvider, 
69   )); 
70   } 

我檢查了我的代碼與github repo,我無法在任何地方發現任何差異。 有沒有直接的東西我沒有發佈我的所有代碼(並有人真的看透了它)?

回答

3

它看起來在你的標準params中有錯誤。 (=之後:projectId)。 正確說法是

'params' => array(':projectId' => $this->loadModel()->id), 

參數數組是參數佔位符索引的查詢參數值的列表。例如,array(':name'=>'Dan',':age'=>'31')。

+0

geez ...整整一天。謝謝.. :) –