CActiveDataProvider 未解析条件中的参数


CActiveDataProvider not resolving params in criteria

我正在关注Yii 1.1和PHP5的敏捷Web应用程序开发,致力于"TrackStar"项目。 对于我的生活,我无法理解我的问题在哪里。我收到异常:

CDb命令无法执行 SQL 语句:SQLSTATE[HY093]:参数编号无效:未定义参数。执行的 SQL 语句为:从tbl_issue t中选择 COUNT(*),其中 project_id=:p rojectId

看来(对于这个菜鸟的解释)我的CActiveDataProvider中的参数是一些如何不解决标准,如在视图中:

(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 存储库检查了我的代码,我在任何地方都找不到任何差异。我在这里缺少一些简单的东西,而不必发布我的所有代码(并让某人实际查看它)?

看起来你的标准参数有错误。 (= 在 :p rojectId 之后)。正确的陈述是

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

数组是按参数占位符编制索引的查询参数值的列表。例如,array(':name'=>'Dan', ':age'=>'31')。