Symfony Forms ManyToMany Select Option не работает

Я создаю форму в Symfony, используя ManyToMany, вот так:

Faq entity

/**
 * @ORM\ManyToMany(
 *     targetEntity = "XXX\AppBundle\Entity\LegalAndHelp\FaqGroups",
 *     inversedBy = "faq"
 * )
 * @ORM\JoinTable(
 *     name = "faq_groups_faq",
 *     joinColumns = {@ORM\JoinColumn(name = "faq_id", referencedColumnName = "id", onDelete = "CASCADE")},
 *     inverseJoinColumns = {@ORM\JoinColumn(name = "faq_group_id", referencedColumnName = "id", onDelete = "CASCADE")}
 * )
 */
protected $faqGroups;

FaqGroups entity

/**
 * @ORM\ManyToMany(
 *     targetEntity = "XXX\AppBundle\Entity\LegalAndHelp\Faq",
 *     mappedBy = "faqGroups",
 *     cascade = {"persist"}
 * )
 */
protected $faq;

Затем я строю такую ​​форму:

$builder
        ->add('faqGroups', EntityType::class, [
            'class'         => FaqGroups::class,
            'choice_label'  => function ($faqGroups) {
                return $faqGroups->getDisplayTitle($this->userLanguage);
            },
            'query_builder' => function (EntityRepository $er) {
                return $er->createQueryBuilder('fg');
            },
            'placeholder' => 'admin.faq.choose.group',
            'constraints' => [
                new Count([
                    'min' => 1,
                    'minMessage' => 'blabla'
                ])
            ]
        ])

Теперь (находясь в части редактирования) у меня есть заполненный объект в форме, и я должен видеть все данные, включая <select> с уже выбранным заданным значением. Проблема в том, что когда есть выбор, он не отображает установленное значение. Когда я изменяю это и добавляю 'multiple' => true, 'expanded' => false,, тогда выбор в порядке. Но я хочу видеть это как раскрывающийся список выбора, а не вариант множественного выбора или флажка.

Если у вас есть отношения ManyToMany, вам не следует использовать multiple => true? Я бы посмотрел на установщик геттера, функции удаления хассера (они используются вашей сущностью формы), если ваш геттер возвращает массив значений, а ваше поле выбора ожидает одно значение, это может быть проблематичным. Вы улавливаете мою мысль здесь? Я бы добавил преобразователь данных в поле выбора и преобразовал из массива в первое значение строки) и обратно из строки в массив из 1 значения. Надеюсь это поможет

db306 08.10.2018 09:21

Ага. это то, что я подумал ... имеет смысл ... спасибо.

Herr Nentu' 08.10.2018 10:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
2
53
0

Другие вопросы по теме