activerecord - Yii - 如何使用 where 和 limit 等条件

标签 activerecord yii

我像这样使用 findAll():

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

我如何为此添加条件?

LIMIT 5还是什么?

最佳答案

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

关于activerecord - Yii - 如何使用 where 和 limit 等条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14101811/

相关文章:

ruby-on-rails - 在测试模式下没有来自 ActiveRecord 且带有 byebug 的 SQL 日志

php - 在 Yii Framework 中实现基于角色的授权

Yii:deleteAll和IN语句

php - Yii2 漂亮的 URL : automatically convert everything with slashes (including all parameters)

sql - 与Yii STAT分组汇总?

php - YII、MS Access 如何一起使用?

sql - 使用 Active Record 的复杂 Ruby SQL 查询 - WHERE 使用 OR 子句和子查询

php - Mysql Codeigniter Active Record - 如何执行 where_in 查询并返回正确的结果顺序?

ruby-on-rails - NoMethodError(未定义方法 `locked'

ruby - 在没有 attr_accessible 的 Rails 4 中 self 记录 ActiveRecord 类文件