我有一个实体,其中包含普通变量和一个变量,该变量是对另一个对象的引用。要在symfony中构建表单,我需要发送一个对象以及我想要在表单上的字段。在这种情况下我该怎么做呢?
我的类和引用另一个类调用站点的文件:
private $Site;
public function getSite()
{
return $this->Site;
}
public function setSite(Site $Site)
{
$this->Site = $Site;
}
我的表单代码:
$builder
->add('site')
->add('email')
->add('password', RepeatedType::class, array(
'type' => PasswordType::class,
'first_options' => array('label' => 'Password'),
'second_options' => array('label' => 'Repeat Password'),
))
->add('termsAccepted', CheckboxType::class, array(
'mapped' => false,
'constraints' => new IsTrue(),
))
->add('registrar', SubmitType::class)
;
然后创建表单:
$user = new User();
$form = $this->createForm(RegisterType::class, $user);
我认为表单嵌入是你想要的:
http://symfony.com/doc/current/form/embedded.html类似的问题在这里:如何包括在实体形式类型的一些字段从另一个实体?
您必须创建另一个表单类型(SiteType
)作为Site
实体的字段表示。然后您只需将这个新字段->add('site', SiteType::class)
添加到表单构建器中。