EasyAdmin, как добавить пользовательский столбец в сетку?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 EasyAdmin, как добавить пользовательский столбец в сетку?

Сообщение Anonymous »

Я хочу добавить столбец, не входящий в мою сущность, и мне нужен специальный запрос/подзапрос. Например. У меня есть объект, которому назначены пользователи, и мне нужен столбец, в котором будет отображаться количество пользователей, но только активных пользователей или только пользователей, созданных после некоторой даты. Я пытался добавить поле в построитель запросов, но затем получаю ошибку, связанную с «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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»