使用臭名昭著的CActiveRecord在Yii Framework中同时查找多个记录


Finding multiple records at once in Yii Framework using the infamous CActiveRecord?

在臭名昭著的Yii Framework for PHP中,如何使用模型的单个实例在表中找到多个记录?

我有一个日期栏:

[dates]
2011-06-29
2011-06-30
2011-07-01
2011-07-02
2011-07-03

假设我有一个搜索条件,它是一个日期范围:

start search from: 2011-06-29
end search at:     2011-07-03

并抓取所有这些记录进行比较,或者告诉用户这些记录已经存在于表中。

使用Yii Framework,再加上它的CActiveRecord、CDbWriter等内置类,这是如何实现的?

假设您有一个名为YourModelCActiveRecord子类,并且数据库表有一列名为dates,那么您将执行以下操作:

$models = YourModel::model()->findAll(array(
    'condition' => 'dates > :minDate AND dates < :maxDate',
    'params' => array(':minDate' => '2011-06-29', ':maxDate' => '2011-07-03'),
));

findAll的参数也可以是CDbCriteria对象;您可以设置与上面示例中的数组键具有相同名称的属性。