Symfony2 FOSUserBundle更改fos_user id类型

时间:2014-05-08 14:20:49

标签: php symfony doctrine-orm fosuserbundle

我有问题。我必须将fos_user.id的类型更改为bigint。但我不知道该怎么做。我已经覆盖了FOSUserBundle并且我已经尝试了下面的代码,它可以工作但不能用于id。:

/**
 * @ORM\Entity
 * @ORM\Table(name="sf_guard_user")
 * @ORM\AttributeOverrides({
 *      @ORM\AttributeOverride(name="id", column=@ORM\Column(type="bigint", name="id")),
 *      @ORM\AttributeOverride(name="email", column=@ORM\Column(type="string", name="email_address", length=255)),
 * })
 */
class User extends BaseUser implements EncoderAwareInterface {
 //...
}

1 个答案:

答案 0 :(得分:2)

您不需要覆盖id。它应该在扩展FOS\UserBundle\Model\User的类中定义。只需在User课程中定义它即可。像这样:

/**
 * @ORM\Entity
 * @ORM\Table(name="sf_guard_user")
 * @ORM\AttributeOverrides({
 *      @ORM\AttributeOverride(name="email", column=@ORM\Column(type="string", name="email_address", length=255)),
 * })
 */
class User extends BaseUser implements EncoderAwareInterface {
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

 //...
}