Значения Symfony Entity не переданы

Я создал объект WorkGroup, а также имею объект User, который аннотирован таким образом.

class WorkGroup{

    /**
     * @ORM\Column(type = "integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy = "AUTO")
     */
    private $id;
    /*  
     * @ORM\Column(type = "string", length=100)
     * @Assert\NotBlank()
     */
    private $sworkgroup;
     /**
     * @ORM\OneToMany(targetEntity = "user", mappedBy = "workgroup",cascade = {"persist"})
     * @ORM\OrderBy({"name" = "ASC"})
     */
    private $users;

Согласно объекту User:

/**
 * @ORM\ManyToOne(targetEntity = "WorkGroup", inversedBy = "users")
 * @ORM\JoinColumn(name = "sgid", referencedColumnName = "id")
 */
private $workgroup;

В форму пользователя я встроил форму WorkGroup.

$builder->add('workgroup', new WorkGroupType());

WorkGroupType, в который встроено:

$builder->add('sworkgroup', 'choice', array(
    'choices' => array(
    'KSI' => 'KSI',
    '3CIS' => '3CIS',),
    'choices_as_values' => true, 
)); 

Когда форма отправляется, поле sworkgroup - это NULL. У меня вопрос, как передать значение из формы в sworkgroup.

Почему поле называется sworkgroup, а поле сущности - workgroup? Как Symfony может понять, что эти элементы связаны?

u_mulder 24.09.2018 11:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
31
1

Ответы 1

Что вы ищете, так это EntityType. Вы должны заменить текущую строку $builder->add('workgroup', new WorkGroupType()); в своей пользовательской форме следующим образом:

->add('environments', EntityType::class, [
    'multiple' => false,
    'expanded' => false,
    'class' => WorkGroup::class,
    'choice_label'  => 'sworkgroup'
 ])

тогда ваше поле выбора будет работать, как ожидалось!

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