2

我正在关注使用 Yii 1.1 和 PHP5 进行敏捷 Web 应用程序开发,从事“TrackStar”项目。对于我的生活,我无法理解我的问题在哪里。我得到了例外:

CDbCommand 执行 SQL 语句失败:SQLSTATE[HY093]:参数号无效:参数未定义。执行的 SQL 语句为:SELECT COUNT(*) FROM tbl_issue tWHERE project_id=:projectId

看来(对于这个菜鸟的解释)我的 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 存储库检查了我的代码,但在任何地方都找不到任何差异。是否有一些简单的我在这里遗漏而无需发布我的所有代码(并让有人真正查看它)?

4

1 回答 1

3

看起来您的标准参数有错误。(=在 :projectId 之后)。正确的说法是

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

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

于 2012-05-05T04:37:04.977 回答