添加不在实体中的自定义表单字段 - Sonata admin
Add custom form field that is not in entity - Sonata admin
我在我的项目中使用 Sonata Admin。我需要渲染一个不属于实体的字段。
考虑具有字段 用户名 和 密码 的实体 用户。但是我还需要一个额外的字段作为 hobby 形式,但在用户实体中不需要它。
$formMapper
->add('username')
->add('password')
->add('hobby');
但是我收到 symfony 错误,
既不是 属性 "hobby" 也不是 "getHobby()"、"hobby()"、"isHobby()"、"hasHobby()"、“__get()" 在 class "App\Entity\User" 中存在并具有 public 访问权限。
我该如何解决这个问题?提前致谢!!
如果我没记错的话,Symfony2 的这个答案应该仍然成立:How to add additional non-entity fields to entity form in Symfony2
In symfony 2.1+, use mapped:
$form = $this->createFormBuilder($promo)
->add('code', 'text')
->add('image', 'file', array(
"mapped" => false,
))
->getForm();
https://symfony.com/doc/current/reference/forms/types/entity.html#mapped
type: boolean
default: true
If you wish the field to be ignored when reading or writing to the
object, you can set the mapped
option to false
.
所以对于你的情况,它应该是这样的:
$formMapper
->add('username')
->add('password')
->add('hobby', null, [
'mapped' => false
]);
我在我的项目中使用 Sonata Admin。我需要渲染一个不属于实体的字段。
考虑具有字段 用户名 和 密码 的实体 用户。但是我还需要一个额外的字段作为 hobby 形式,但在用户实体中不需要它。
$formMapper
->add('username')
->add('password')
->add('hobby');
但是我收到 symfony 错误,
既不是 属性 "hobby" 也不是 "getHobby()"、"hobby()"、"isHobby()"、"hasHobby()"、“__get()" 在 class "App\Entity\User" 中存在并具有 public 访问权限。
我该如何解决这个问题?提前致谢!!
如果我没记错的话,Symfony2 的这个答案应该仍然成立:How to add additional non-entity fields to entity form in Symfony2
In symfony 2.1+, use mapped:
$form = $this->createFormBuilder($promo) ->add('code', 'text') ->add('image', 'file', array( "mapped" => false, )) ->getForm();
https://symfony.com/doc/current/reference/forms/types/entity.html#mapped
type:
boolean
default:true
If you wish the field to be ignored when reading or writing to the object, you can set the
mapped
option tofalse
.
所以对于你的情况,它应该是这样的:
$formMapper
->add('username')
->add('password')
->add('hobby', null, [
'mapped' => false
]);