我有一个用户实体:
/**
* Class User
* @package Somepackage
* @ORM\Entity(repositoryClass="Somepackage\UserBundle\Entity\Repository\UserRepository")
* @ORM\Table(name="user")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"usereins" = "UserEins", "userzwei" = "UserZwei", "admin" = "Admin"})
*/
class User implements UserInterface, \Serializable {
现在我想用formbuilder创建一个表单,可以创建一个新用户,并可以通过下拉列表选择“discrimin”。但如果我试试这个:
$builder
->add('discr', 'choice', array( ... ), 'required' => true ));
然后Symfony说:
属性“discrimin”和方法之一“getDiscr()”,“isDiscr()”,“hasDiscr()”,“__ get()”都不存在
我该怎么做?可能吗?我一直在谷歌搜索超过一个小时,我似乎找不到任何东西,除了其他stackoverflow问题,没有人能够回答。
答案 0 :(得分:0)
Cerads的回答是正确的,非常感谢你。我在我的表中添加了另一个字段,用于存储用户类型,因此我不必担心discrimin字段。