Yii params条件(PHP框架)

时间:2013-04-16 17:24:59

标签: php yii

我是yii世界的一个完全新手,尽我所能尽力学习框架,同时阅读Yii上的书 - “使用Yii和PHP进行Web应用程序开发”通过 Jeffrey Winesett

我遇到了:

'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,
        ));
    }

任何答案都将受到高度赞赏。 问候。

1 个答案:

答案 0 :(得分:4)

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

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

project_id=:projectId

在你的数据库模式中,Yii知道project_id是一个整数,然后当你用以下命令绑定param:

'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'