我像这样使用findAll():
$l = SiteContentRelated::model()->findAll('content_1=:c', array(':c' => $id));
我如何为此添加条件?
喜欢LIMIT 5
还是其他什么?
答案 0 :(得分:17)
使用CDbCriteria
指定更详细的标准:
$criteria = new CDbCriteria;
$criteria->condition = 'content_1=:c';
$criteria->limit = 5;
$criteria->params = array(':c' => $id);
$l = SiteContentRelated::model()->findAll($criteria);
或将数组传递给findAll
,该数组将转换为CDbCriteria
:
$l = SiteContentRelated::model()->findAll(array(
'condition' => 'content_1=:c',
'limit' => 5,
'params' => array(':c' => $id),
));
指定LIMIT
时,最好还指定ORDER BY
。
对于基于模型属性的过滤,您还可以使用findAllByAttributes
:
$l = SiteContentRelated::model()->findAllByAttributes(array(
'content_1' => $id,
), array(
'limit' => 5,
));