在Yii $condition
中使用$param
和findByAttributes
的说明
在大多数情况下,这就是我使用findByAttributes
Person::model()->findByAttributes(array('first_name'=>$firstName,'last_name'=>$lastName));
答案 0 :(得分:5)
从此帖子http://www.yiiframework.com/forum/index.php/topic/21178-findbyattributes-example/复制 解释你想做什么以及你的错误在哪里。 尝试阅读文档http://www.yiiframework.com/doc/api/1.1/CActiveRecord#findByAttributes-detail
答案 1 :(得分:1)
当您使用模型的属性在Yii的CActiveRecord中进行查找时,您很可能会通过某种平等找到。
Person::model()->findByAttributes(array(
'first_name' => $firstName,
'last_name' => $lastName,
));
在英语中,这转换为"找到一个姓氏为$ lastname且名字为$ firstname"的人。但这是一个糟糕的例子。请考虑以下事项。
Person::model()->findByAttributes(array(
'age' => 18,
));
这是一个更好的例子,用英语翻译成"取我所有十八岁的孩子" (即"其中age = 18
)。这可以用这样的条件重写
Person::model()->findByAttributes(array(
'condition' => 'age = :age',
'params' => array(
':age' => 18,
),
));
到目前为止,似乎没什么好处。但是这样的表达式使我们能够使用更多的布尔运算符。例如......
Person::model()->findByAttributes(array(
'condition' => 'age < :age',
'params' => array(
':age' => 18,
),
));
...现在可以帮助我们找到所有低于某个年龄的人。
使用$conditions
和$params
,查询可以变得复杂,但是使用常规方法,您只能使用赋值查询。