Я создал объект 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.






Что вы ищете, так это EntityType. Вы должны заменить текущую строку $builder->add('workgroup', new WorkGroupType()); в своей пользовательской форме следующим образом:
->add('environments', EntityType::class, [
'multiple' => false,
'expanded' => false,
'class' => WorkGroup::class,
'choice_label' => 'sworkgroup'
])
тогда ваше поле выбора будет работать, как ожидалось!
Почему поле называется
sworkgroup, а поле сущности -workgroup? Как Symfony может понять, что эти элементы связаны?