【发布时间】:2018-08-03 07:10:56
【问题描述】:
我在我的项目中使用 Sonata Admin。我需要渲染一个不属于实体的字段。
考虑具有 用户名 和 密码 字段的实体 User。但我还需要一个额外的字段作为 hobby 在表单中,但在用户实体中不需要。
$formMapper
->add('username')
->add('password')
->add('hobby');
但是我得到了 symfony 错误,
属性“hobby”和方法之一“getHobby()”、“hobby()”、“isHobby()”、“hasHobby()”、“__get()”都不存在并且在类中具有公共访问权限“应用\实体\用户”。
我该如何解决这个问题?提前致谢!!
【问题讨论】:
-
嗯,你可以用 Bananaapple 提供的答案来做,但是你会把爱好存放在哪里?
-
"hobby" 只是一个示例字段。我有几个像爱好这样的字段需要存储在多个表中。
-
啊,明白了。那么您需要使用 preUpdate 挂钩来访问数据并对其进行处理。 :)
-
是的!我用过 $this->getForm()->get('hobby')->getData();获得“爱好”的价值
标签: php symfony sonata-admin