Vin*_*h S 2 php symfony sonata-admin
我在我的项目中使用 Sonata Admin。我需要呈现一个不属于实体的字段。
考虑具有字段username和password 的实体User。但是我还需要一个额外的字段作为表单中的爱好,但在 User 实体中不需要它。
$formMapper
->add('username')
->add('password')
->add('hobby');
Run Code Online (Sandbox Code Playgroud)
但我收到了 symfony 错误,
属性“hobby”和方法“getHobby()”、“hobby()”、“isHobby()”、“hasHobby()”、“__get()”都不存在并且在类“App\”中具有公共访问权限实体\用户”。
我该如何解决这个问题?提前致谢!!
如果我没记错的话,这个 Symfony2 的答案应该仍然成立:How to add additional non-entity fields to entity form in Symfony2
在 symfony 2.1+ 中,使用映射:
Run Code Online (Sandbox Code Playgroud)$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
类型:
boolean默认:true如果您希望在读取或写入对象时忽略该字段,您可以将该
mapped选项设置为false。
所以对于你的情况,它应该是这样的:
$formMapper
->add('username')
->add('password')
->add('hobby', null, [
'mapped' => false
]);
Run Code Online (Sandbox Code Playgroud)