将formbuilder类值赋予'隐藏'

时间:2017-02-06 18:20:53

标签: symfony

我想将formBuilder用户实体作为隐藏值。

$form->add('user','hidden',array("data" => $user))

$ user是用户实体。

但是它显示了这个错误。

Expected argument of type "Acme\UserBundle\Entity\User", "string" given

如果我使用' null'而不是隐藏'

$form->add('user',null,array("data" => $user))

它不会显示错误并显示用户实体的选择框。

但是我想使用隐藏。 我该怎么做?

1 个答案:

答案 0 :(得分:1)

您没有正确指定字段类型 - 这是正确的方法:

...
$formBuilder->add('user', HiddenType::class);
...
...
$form = $formBuilder->getForm();
$form->get('user')->setData($user->getId());

但是您无法将实体分配到隐藏字段,因此您可以为用户识别分配用户ID。

另一种选择是制作数据转换器并定义自己的EntityHiddenType - 更多信息请点击此处:symfony : can't we have a hidden entity field?