Как перечислить объекты в ChoiceField с помощью EasyAdmin?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как перечислить объекты в ChoiceField с помощью EasyAdmin?

Сообщение Anonymous »

Я пытаюсь задать параметры в форме с помощью EasyAdmin Bundle.
Ниже приведен код внутри контроллера.
Я получаю сообщение об ошибке: Ожидаемый аргумент типа «App\Entity\Author или null», «int», указанный в пути к свойству «author».
Действительно, ChoiceField возвращает идентификатор объекта Author. Как я могу преобразовать идентификатор в объект модным образом после отправки формы?
В настоящее время я использую DataTransformers для каждого поля, чтобы решить эту проблему. Но это очень тяжелое решение. Это означает создание одного класса DataTransform для каждого поля.
В документации нет никаких указаний на то, как работать с выбором: https://symfony.com/doc/3.x/ EasyAdminBundle/fields.html
Спасибо.
Я использую EasyAdmin 3 + Symfony 5 в Linux Mint.
В App\Admin\PostCrudController:
public function configureFields(string $pageName): iterable
{
return [
// ...
ChoiceField::new('author')->setChoices(fn() => $this->getAuthorChoices()),
];
}

private function getAuthorChoices(): array
{
$choices = [];
foreach($this->authorRepository->findAll() as $i => $author) {
$choices[$author->getFullName()] = $author->getId();
}
return $choices;
}


Подробнее здесь: https://stackoverflow.com/questions/708 ... -easyadmin
Ответить

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

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

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

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

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