1

我是 yii 世界的新手,尽我所能学习框架,同时阅读Jeffrey Winesett的关于 Yii 的书 - ' Web Application Development Using Yii and PHP ' ,

我碰到 :

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

如果有人读过这本书,有人可以解释为什么我们使用:projectId为什么不直接使用projectId':' 代表什么?它是特定的语法还是特定于php的东西。

这是确切的代码:

public function actionIndex()
    {

        $dataProvider=new CActiveDataProvider('Issue', array(
            'criteria'=>array(
                'condition'=>'project_id=:projectId',
                'params'=>array(':projectId'=>$this->_project->id),
            ),
        ));
        $this->render('index',array(
            'dataProvider'=>$dataProvider,
        ));
    }

任何答案将不胜感激。问候。

4

1 回答 1

4

":" id 用于标识条件字符串中的参数。这是一种安全地将参数绑定到 sql 语句的方法。

在您的情况下,当您指定此条件时

project_id=:projectId

在你的数据库模式中,Yii 知道 project_id 是一个整数,然后当你绑定参数时:

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

Yii 将确保您绑定一个整数并为其编写 SQL 语句并生成如下 SQL 语句:project_id=26

这与字符串 ex. 相同:

        'criteria'=>array(
            'condition'=>'name=:myname',
            'params'=>array(':myname' => 'Ronald McDonald'),
        ),

那么您针对此条件的 sql 语句将是name='Ronald McDonald'

于 2013-04-16T17:34:32.653 回答