【发布时间】:2019-02-07 16:22:56
【问题描述】:
我有多个 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 个复选框?我只给用户一个复选框。我已经阅读了很多小时、文档、帖子,但我找不到解决方案。我希望你能帮助我提供链接或想法。
【问题讨论】: