Я хочу добавить столбец, не входящий в мою сущность, и мне нужен специальный запрос/подзапрос. Например. У меня есть объект, которому назначены пользователи, и мне нужен столбец, в котором будет отображаться количество пользователей, но только активных пользователей или только пользователей, созданных после некоторой даты. Я пытался добавить поле в построитель запросов, но затем получаю ошибку, связанную с «id как массив». Возможно ли это вообще с помощью Easyadmin?
Для теста я пытался добавить любое поле в построитель запросов
Код: Выделить всё
public function createIndexQueryBuilder(SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters): QueryBuilder
{
[...]
$queryBuilder->addSelect('1 AS userCount');
return $queryBuilder;
}
но тогда у меня возникает ошибка
Код: Выделить всё
Cannot read property "id" from an array. Maybe you intended to write the property path as "[id]" instead.
Я удалил пагинатор из AbstractCrudController::index и увидел, что структура результатов теперь немного отличается
Код: Выделить всё
-results: ArrayIterator {#900 ▼
-storage: array:10 [▼
0 => array:2 [▼
0 => App\Entity\Company {#916 ▶}
"userCount" => 1
]
1 => array:2 [▼
0 => App\Entity\Company {#814 ▶}
"userCount" => 1
]
Обычно у вас есть только массив объектов, а не массив массивов с объектом и пользовательским значением.
Подробнее здесь:
https://stackoverflow.com/questions/767 ... mn-to-grid