[英]Add custom form field that is not in entity - Sonata admin
我在项目中使用Sonata Admin。 我需要渲染一个不属于实体的字段。
考虑使用字段username和password的实体User 。 但是我还需要一个额外的字段作为表单的爱好 ,但在User实体中则不需要。
$formMapper
->add('username')
->add('password')
->add('hobby');
但是我遇到了symfony错误,
属性“ hobby”或方法“ getHobby()”,“ hobby()”,“ isHobby()”,“ hasHobby()”和“ __get()”都不存在,并且在类“ App \\实体\\用户”。
我该如何解决? 提前致谢!!
如果我没有记错的话,Symfony2的答案应该仍然适用: 如何在Symfony2中的实体表单中添加其他非实体字段
在symfony 2.1+中,使用maped:
$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
]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.