I'm trying to set choices in a form using EasyAdmin Bundle. Below is the code inside the controller.
I get this error message: Expected argument of type "App\Entity\Author or null", "int" given at property path "author".
Indeed the ChoiceField returns the Author object's id. How can i transform the id into the object in a fashion manner after the form has been submitted? I am curently using DataTransformers for each field to solve this issue. But this is very heavy as a solution. It means creating 1 DataTransform class for each field.
The documentation doesn't give any clue on how to deal with choices: https://symfony.com/doc/3.x/EasyAdminBundle/fields.html
Thank you.
I'm using EasyAdmin 3 + Symfony 5 on Linux Mint.
In 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;
}