У меня есть несколько EntityType, который получает его значения из базы данных следующим образом:
MyFormType.php
private $membersRepository;
public function __construct(MembersRepository $membersRepository)
{
$this->membersRepository = $membersRepository;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('trainer', EntityType::class, [
'multiple' => true,
'expanded' => true,
'class' => Members::class,
'choices' => $this->membersRepository->findAllByExecutive(),
'placeholder' => 'Ausbilder',
'label' => 'Ausbilder',
'attr'=> array('class'=>'form-control'),
])
Мой репозиторий с findAllByExecutive ()
/**
* @return Members[]
*/
public function findAllByExecutive()
{
return $this->createQueryBuilder('u')
->select('partial u.{id, firstname, lastname}')
->orderBy('u.lastname', 'ASC')
->add('where', 'u.executive = 1')
->getQuery()
->execute();
}
и, наконец, мой контроллер для помещения этих значений в базу данных
if ($form->isSubmitted() && $form->isValid()) {
/** @var Dienstbuch $dienstbuch */
$dienstbuch = $form->getData();
//dd($dienstbuch->trainer);
$em->persist($dienstbuch);
$em->flush();
$this->addFlash('success', 'Eintrag gespeichert');
return $this->redirectToRoute('dienstbuch.neu');
}
- Почему мой метод findAllByExecutive () дает мне больше, чем мои 3 ожидаемые строки?!
- Как я могу построить 3 флажкак каждой строке пользователя?я получаю только один флажок для пользователя.Я прочитал много часов, документов, сообщений, но я не могу найти решение.Я надеюсь, что вы можете помочь мне со ссылкой или идеей.