【发布时间】:2012-12-15 15:00:44
【问题描述】:
我像这样使用 findAll():
$l = SiteContentRelated::model()->findAll('content_1=:c', array(':c' => $id));
我怎样才能为此添加条件?
像LIMIT 5 之类的?
【问题讨论】:
标签: activerecord yii
我像这样使用 findAll():
$l = SiteContentRelated::model()->findAll('content_1=:c', array(':c' => $id));
我怎样才能为此添加条件?
像LIMIT 5 之类的?
【问题讨论】:
标签: activerecord yii
使用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,
));
【讨论】: