Symfony2 FOSUserBundle更改fos_user id类型
问题描述:
I have problem. I have to change type of fos_user.id to bigint. But I don't know how to do it. I have overriden the FOSUserBundle and I have tried code below, it's works but not for 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 {
//...
}
我有问题。 我必须将fos_user.id的类型更改为bigint。 但我不知道该怎么做。 我已经覆盖了FOSUserBundle并且我已经尝试了下面的代码,它可以工作,但不能用于id.:
n.n/**
* @ORM \ Entity
* @ORM \ 表(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用户扩展BaseUser实现EncoderAwareInterface {
//...
}
div>
答
You don't need to override id
. It should be defined in class that extends FOS\UserBundle\Model\User
. Just define it inside your User
class. Like this:
/**
* @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;
//...
}