在 Symfony2 中使用 fosUserBundle Doctrine 。 以下是版本:
尝试覆盖列名,例如用户名1。
这是我做的: 命名空间PROJECT \ BUNDLE \ Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Groups;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Table(name="PROJECT_BUNDLE_USER")
* @ORM\Entity(repositoryClass="PROJECT\BUNDLE\Entity\UserRepository")
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="username",
* column=@ORM\Column(
* name = "BUNDLE_USERNAME"
* )
* ),
[....]
* })
*/
class User extends BaseUser
{
[....]
当我想用php app/console doctrine:generate:entities PROJECT
[Doctrine\ORM\Mapping\MappingException]
Invalid field override named 'username' for class 'PROJECT\BUNDLE\Entity\User'.
编辑1 :添加命名空间并使用
编辑2 :类型和长度属性相同的错误已完成:
column=@ORM\Column(
* name = "USER_USERNAME",
* type = "string",
* length = 255
* )
答案 0 :(得分:2)
我花了一整天的时间来处理类似的麻烦,对我来说更改列名的方法是:
/*
* @ORM\Entity
* @ORM\Table(name="Utilisateurs")
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="password",
* column=@ORM\Column(
* name="MDP",
* type="string",
* length=50,
* nullable=false
* )
* ),})
其中MDP是我的database_table和密码的名称,FOSUserbundle想要的名称。一定要指定类型,出于某种原因没有它就会出错。 编辑:这是用FOSUserBundle~1.3完成的,如果你可以降级它应该工作。
答案 1 :(得分:0)
您是否错过了列类型和长度?