#orm #datatables #adapter
#orm #таблицы данных #адаптер
Вопрос:
При построении сбора данных в omines datatable в symfony 4.2 и использовании QueryBuilder
И у меня есть это
function (QueryBuilder $builder) {
$builder
->distinct()
->select('m, b, v, m.lfd')
->from(Meldung::class, 'm')
->leftJoin('m.lastUser', 'b')
->leftJoin('m.process', 'v')
->leftJoin('m.messageType', 't');
}
Я получил это сообщение об ошибке от symfony:
Не удается прочитать свойство «id» из массива. Возможно, вы намеревались вместо этого записать путь к свойству как «[id]».
Это сообщение об ошибке появляется, когда я добавляю m.lfd (или какое-либо другое конкретное поле) в список выбора
Я не знаю, как с этим справиться.
Ответ №1:
Вам необходимо установить параметр hydrate для запроса::HYDRATE_ARRAY:
->createAdapter(ORMAdapter::class, [
'hydrate' => DoctrineORMQuery::HYDRATE_ARRAY,
'entity' => Meldung::class,
'query' => function (QueryBuilder $builder) {
$builder
->distinct()
->select('m, b, v, m.lfd')
->from(Meldung::class, 'm')
->leftJoin('m.lastUser', 'b')
->leftJoin('m.process', 'v')
->leftJoin('m.messageType', 't');
}
])
Комментарии:
1. Большое спасибо. но, используя это в omines datatable, я получаю только в результирующем наборе. Итак, как перебрать все и просмотреть их в datatable?