【问题标题】:Yii - How to use conditions like where and limitYii - 如何使用 where 和 limit 等条件
【发布时间】:2012-12-15 15:00:44
【问题描述】:

我像这样使用 findAll():

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

我怎样才能为此添加条件?

LIMIT 5 之类的?

【问题讨论】:

    标签: activerecord yii


    【解决方案1】:

    使用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,
    ));
    

    【讨论】:

      猜你喜欢
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      相关资源
      最近更新 更多