Ошибка при использовании Omines Datatable при создании запроса в CreateAdapter

#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?