Yii - 如何使用像where和limit这样的条件

时间:2012-12-31 12:48:50

标签: activerecord yii

我像这样使用findAll():

$l = SiteContentRelated::model()->findAll('content_1=:c', array(':c' => $id));

我如何为此添加条件?

喜欢LIMIT 5还是其他什么?

1 个答案:

答案 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,
));