Php 未传递Symfony实体值
我创建了一个实体Php 未传递Symfony实体值,php,symfony,Php,Symfony,我创建了一个实体工作组,还创建了一个实体用户,以这种方式进行注释 class WorkGroup{ /** * @ORM\Column(type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /* * @ORM\Column(type="string", length=100) * @Assert\No
工作组
,还创建了一个实体用户
,以这种方式进行注释
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;
根据用户
实体:
/**
* @ORM\ManyToOne(targetEntity="WorkGroup", inversedBy="users")
* @ORM\JoinColumn(name="sgid", referencedColumnName="id")
*/
private $workgroup;
在用户表单中,我嵌入了一个工作组
表单
$builder->add('workgroup', new 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如何理解这些项目是连接在一起的?