Symfony 将formbuilder类值指定为“隐藏”

Symfony 将formbuilder类值指定为“隐藏”,symfony,Symfony,我想将formBuilder用户实体作为隐藏值 $form->add('user','hidden',array("data" => $user)) $user是用户实体 然而,它显示了这个错误 应为Acme\UserBundle\Entity\User类型的参数,给定字符串 如果我使用“null”而不是“hidden” $form->add('user',null,array("data" => $user)) 它不显示错误并显示用户实体的选择框 不过我想用隐藏的。

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

$form->add('user','hidden',array("data" => $user))
$user是用户实体

然而,它显示了这个错误

应为Acme\UserBundle\Entity\User类型的参数,给定字符串

如果我使用“null”而不是“hidden”

$form->add('user',null,array("data" => $user))
它不显示错误并显示用户实体的选择框

不过我想用隐藏的。
我该怎么做???

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

...
$formBuilder->add('user', HiddenType::class);
...
...
$form = $formBuilder->getForm();
$form->get('user')->setData($user->getId());
但您不能将实体分配给隐藏字段,所以您可以为用户标识分配用户id


另一个选择是制作数据转换器并定义自己的EntityHiddenType——这里有更多信息:

我明白了,我明白了。将实体作为隐藏值是不可能的。你给我一个很好的暗示。非常感谢您是否要存储用户输入的用户ID值?如果没有,请使用$form->add'user',null,arraydata=>$user',mapped'=>false。