【问题标题】:Give formbuilder class value as 'hidden'将 formbuilder 类值设为“隐藏”
【发布时间】:2017-06-23 19:09:25
【问题描述】:

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

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

$user 是用户实体。

但是它显示了这个错误。

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

如果我使用 'null' 而不是 'hidden'

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

不显示错误,显示用户实体的选择框。

但是我想使用隐藏。 我怎样才能做到??

【问题讨论】:

    标签: symfony


    【解决方案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?

    【讨论】:

    • 我明白了,我明白了。把 Entity 作为隐藏值是不可能的。你给我一个很好的提示。非常感谢
    • 您想存储来自用户输入的 UserId 值吗?如果没有,请使用$form->add('user',null,array("data" => $user, 'mapped' => false))
    猜你喜欢
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    相关资源
    最近更新 更多