Yii 1.1
$data = MyModel::model()->findAll([
'select' => [
'count(id) as count',
'userID'
],
'condition' => "type = 'admin' and dateAdded between '2018-07-01' and '2018-08-01'",
'group' => 'userID',
]);
Вам также необходимо добавить count
свойство к MyModel
:
class MyModel extends CActiveRecord {
public $count;
// ...
}
Затем вы можете сопоставить счетчики с идентификаторами:
$counts = CHtml::listData($data, 'userId', 'count');
Или получить доступ к нему в foreach:
foreach ($data as $model) {
echo "$model->userID - $model->count\n";
}
Yii 2
$data = Post::find()
->select([
'count(id) as count',
'userID',
])
->where("type = 'admin' and dateAdded between '2018-07-01' and '2018-08-01'")
->groupBy('userID')
->asArray()
->all();
Отображение:
$counts = ArrayHelper::map($data, 'userID', 'count');
Foreach:
foreach ($data as $row) {
echo "{$row['userID']} - {$row['count']}\n";
}