начал изучать данный фреймворк и у меня появилось проблема с GridView при выводе связанных таблиц.
имею 2 модели сгенерированные gii:
(у меня всё более ёмко, потому количество полей сокращу)
Код: Выделить всё
class Tickets extends \yii\db\ActiveRecord
....................
public function getTicketHistories()
{
return $this->hasMany(TicketHistory::className(), ['TicketID' => 'id']);
}
где хранится
id, start_date(дата открытия), start_text (первичный текст)
и
Код: Выделить всё
class TicketHistory extends \yii\db\ActiveRecord
где хранится
id, TicketID (2й ключ), edit_date, edit_text, edit_version, current(0 или 1)
грубо говоря в SQL значения, которые должны пойти в грид должны выглядеть так:
Код: Выделить всё
SELECT
*
FROM
Tickets JOIN TicketHistory
WHERE
Tickets.id = TicketHistory.TicketID AND TicketHistory.Current = 1
я с помощью жадной загрузки подгрузил в модель поиска TicketSearch
Код: Выделить всё
$query = tickets::find()
->With(['ticketHistories']);
либо нужно запросы конфигурировать в самом гриде?
в самом гриде у меня получилось вывести лишь количество историй, хранящихся в одном тикете
Код: Выделить всё
[
'header' => 'Number Edits',
'value' => function($data) {
return $data->getTicketHistories()->count();
}
],