Symfony 将 DiscriminatorColumn 与 formbuilder 结合使用
Symfony using DiscriminatorColumn with formbuilder
我有一个用户实体:
/**
* 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 创建一个表单,可以在其中创建一个新用户,并且可以通过下拉菜单选择 "discr"。但如果我试试这个:
$builder
->add('discr', 'choice', array( ... ), 'required' => true ));
然后 Symfony 说:
Neither the property "discr" nor one of the methods "getDiscr()", "isDiscr()", "hasDiscr()", "__get()" exist
我该怎么做?可能吗?我已经在谷歌上搜索了一个多小时,除了没有人能够回答的其他 Whosebug 问题之外,我似乎找不到任何东西。
cerads回答正确,非常感谢。我在 table 中添加了另一个字段,用于存储用户类型,因此我不必担心 discr 字段。
我有一个用户实体:
/**
* 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 创建一个表单,可以在其中创建一个新用户,并且可以通过下拉菜单选择 "discr"。但如果我试试这个:
$builder
->add('discr', 'choice', array( ... ), 'required' => true ));
然后 Symfony 说:
Neither the property "discr" nor one of the methods "getDiscr()", "isDiscr()", "hasDiscr()", "__get()" exist
我该怎么做?可能吗?我已经在谷歌上搜索了一个多小时,除了没有人能够回答的其他 Whosebug 问题之外,我似乎找不到任何东西。
cerads回答正确,非常感谢。我在 table 中添加了另一个字段,用于存储用户类型,因此我不必担心 discr 字段。