使用DiscriminatorColumn和formbuilder的Symfony

时间:2015-01-12 12:09:17

标签: forms symfony

我有一个用户实体:

/**
 * 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问题,没有人能够回答。

1 个答案:

答案 0 :(得分:0)

Cerads的回答是正确的,非常感谢你。我在我的表中添加了另一个字段,用于存储用户类型,因此我不必担心discrimin字段。