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

Cha*_*ist 7 activerecord yii

我像这样使用findAll():

$l = SiteContentRelated::model()->findAll('content_1=:c', array(':c' => $id));
Run Code Online (Sandbox Code Playgroud)

我该如何为此添加条件?

LIMIT 5或什么?

DCo*_*der 17

使用CDbCriteria指定更详细的标准:

$criteria = new CDbCriteria;
$criteria->condition = 'content_1=:c';
$criteria->limit = 5;
$criteria->params = array(':c' => $id);

$l = SiteContentRelated::model()->findAll($criteria);
Run Code Online (Sandbox Code Playgroud)

或传递一个数组findAll,将其转换为CDbCriteria:

$l = SiteContentRelated::model()->findAll(array(
  'condition' => 'content_1=:c',
  'limit' => 5,
  'params' => array(':c' => $id),
));
Run Code Online (Sandbox Code Playgroud)

指定a时LIMIT,最好也指定ORDER BY.


对于基于模型属性的过滤,您还可以使用findAllByAttributes:

$l = SiteContentRelated::model()->findAllByAttributes(array(
  'content_1' => $id,
), array(
  'limit' => 5,
));
Run Code Online (Sandbox Code Playgroud)