Документация для функции заказа недостаточно хороша. Вот что у меня есть:
Таблица A ‹---- MiddleTableAB ----> Таблица B ‹--- MiddleTableBC ---> Таблица C
Итак, у меня есть таблица B, которая имеет отношения «многие ко многим» с таблицей A, а также отношения «многие ко многим» с таблицей C.
Мне нужен список элементов таблицы B. Их нужно сгруппировать по идентификатору таблицы A, а затем по идентификатору таблицы C.
Это то, что у меня есть внутри функции таблицы B:
$query=$this->find();
$query->contain([
'MiddleTableAB.TableA'=> function ($q) {
return $q->select(['id','name']);
},
'MiddleTableBC.TableC'=> [
'strategy' => 'select',
'queryBuilder' => function ($q) {
return $q->select(['id','name']);
},
]
]);
//$query->select(['id','description']);
$query->group(['TableA.id','TableC.id']);
$data = $query->all();
Но торт говорит, что нет TableA.id. Если я удалю групповой вызов, я получу все данные, которые мне нужны для создания необходимого результата. Как я могу заставить это работать?