Есть полностью рабочий запрос на sql:
SELECT u.id, u.firstname, u.lastname, bsr.requests, bsr.found_sum
FROM user u
LEFT JOIN billing_stat_request bsr ON (bsr.id = u.id AND bsr.date = '2016-06-03')
WHERE u.company_id = 1
На его основе необходимо создать activeDataProvider.
В моделе User создала метод:
public function getBillingStatRequest()
{
return $this->hasOne(BillingStatRequest::className(), ['id' => 'id']);
}
dataProvider создаю так:
$model = User::find()
->select('user.id, lastname, firstname, middlename')
->where(['company_id' => $company_id])
->joinWith('billingStatRequest bsr', true, 'LEFT JOIN');
$dataProvider = new ActiveDataProvider([
'query' => $model
]);
В таком случае не учитывается, что джоинить надо еще и по bsr.date = '2016-06-03'.
Пробовала сделать так:
$model = User::find()
->select('user.id, lastname, firstname, middlename')
->where(['company_id' => '1'])
->join('LEFT JOIN', 'billing_stat_request bsr', "bsr.id = user.id AND bsr.date = 2016-06-03" );
$dataProvider = new ActiveDataProvider([
'query' => $model
]);
Тоже не работает как надо.
Как это реализовать?
Может не через activeDataProvider?
В итоге результаты выборки мне надо отобразить в GridView::widget.