实体上“城市化”栏目的重复定义

时间:2014-07-03 03:28:18

标签: entity-framework symfony doctrine-orm mapping fosuserbundle

我正在使用FOSUserBundle,我需要构建用户配置文件。这就是我所做的:

创建User类并从BaseUser扩展,因为FOSUser文档说

namespace Sunahip\UserBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\OneToOne(targetEntity="Profile", mappedBy="user")
     */
    protected $profile;

    /**
     * @ORM\ManyToMany(targetEntity="Sunahip\UserBundle\Entity\Group")
     * @ORM\JoinTable(name="fos_user_user_group",
     *      joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
     *      inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
     * )
     */
    protected $groups;

}

创建个人资料实体

namespace Sunahip\UserBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;

/**
 * @ORM\Entity
 * @ORM\Table(name="profile")
 */
class Profile extends BaseUser
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Id
     * @ORM\OneToOne(targetEntity="User", inversedBy="profile")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
    protected $user;

    /**
     * @ORM\Column(name="register_type", type="smallint", length=1)
     */
    protected $register_type;

    /**
     * @ORM\Column(name="rif", type="string", length=25)
     */
    protected $rif;

    /**
     * @ORM\Column(name="ci", type="string", length=25)
     */
    protected $ci;

    /**
     * @ORM\Column(name="firstname", type="string", length=25)
     */
    protected $firstname;

    /**
     * @ORM\Column(name="lastname", type="string", length=25)
     */
    protected $lastname;

    /**
     * @ORM\Column(name="state", type="string", length=150)
     */
    protected $state;

    /**
     * @ORM\Column(name="city", type="string", length=150)
     */
    protected $city;

    /**
     * @ORM\Column(name="town", type="string", length=150)
     */
    protected $town;

    /**
     * @ORM\Column(name="urbanization", type="string", length=150)
     */
    protected $urbanization;

    /**
     * @ORM\Column(name="urbanization", type="string", length=150)
     */
    protected $street;

    /**
     * @ORM\Column(name="aparment", type="string", length=150)
     */
    protected $aparment;

    /**
     * @ORM\Column(name="aparment_no", type="string", length=150)
     */
    protected $aparment_no;

    /**
     * @ORM\Column(name="reference", type="string", length=250)
     */
    protected $reference;

    /**
     * @ORM\Column(name="zipcode", type="string", length=250)
     */
    protected $zipcode;

    /**
     * @ORM\Column(name="fax", type="string", length=250)
     */
    protected $fax;

    /**
     * @ORM\Column(name="local_phone", type="string", length=250)
     */
    protected $local_phone;

    /**
     * @ORM\Column(name="movil_phone", type="string", length=250)
     */
    protected $movil_phone;

    /**
     * @ORM\Column(name="alt_email", type="string", length=250)
     */
    protected $alt_email;

    /**
     * @ORM\Column(name="alt_email", type="string", length=250)
     */
    protected $website;

    public function getId()
    {
        return $this->id;
    }

    public function setUser(User $user)
    {
        $this->user = $user;
    }

    public function getUser()
    {
        return $this->user;
    }

    public function setRegisterType($register_type)
    {
        $this->register_type = $register_type;
    }

    public function getRegisterType()
    {
        return $this->register_type;
    }

    public function setRif($rif)
    {
        $this->rif = $rif;
    }

    public function getRif()
    {
        return $this->rif;
    }

    public function setCI($ci)
    {
        $this->ci = $ci;
    }

    public function getCI()
    {
        return $this->ci;
    }

    public function setFirstname($firstname)
    {
        $this->firstname = $firstname;
    }

    public function getFirstname()
    {
        return $this->firstname;
    }

    public function setLastname($lastname)
    {
        $this->lastname = $lastname;
    }

    public function getLastname()
    {
        return $this->lastname;
    }

    public function setState($state)
    {
        $this->state = $state;
    }

    public function getState()
    {
        return $this->state;
    }

    public function setCity($city)
    {
        $this->city = $city;
    }

    public function getCity()
    {
        return $this->city;
    }

    public function setTown($town)
    {
        $this->town = $town;
    }

    public function getTown()
    {
        return $this->town;
    }

    public function setUrbanization($urbanization)
    {
        $this->urbanization = $urbanization;
    }

    public function getUrbanization()
    {
        return $this->urbanization;
    }

    public function setStreet($street)
    {
        $this->street = $street;
    }

    public function getStreet()
    {
        return $this->street;
    }

    public function setAparment($aparment)
    {
        $this->aparment = $aparment;
    }

    public function getAparment()
    {
        return $this->aparment;
    }

    public function setAparmentNo($aparment_no)
    {
        $this->aparment_no = $aparment_no;
    }

    public function getAparmentNo()
    {
        return $this->aparment_no;
    }

    public function setReference($reference)
    {
        $this->reference = $reference;
    }

    public function getReference()
    {
        return $this->reference;
    }

    public function setZipcode($zipcode)
    {
        $this->zipcode = $zipcode;
    }

    public function getZipcode()
    {
        return $this->zipcode;
    }

    public function setFax($fax)
    {
        $this->fax = $fax;
    }

    public function getFax()
    {
        return $this->fax;
    }

    public function setLocalPhone($local_phone)
    {
        $this->local_phone = $local_phone;
    }

    public function getLocalPhone()
    {
        return $this->local_phone;
    }

    public function setMovilPhone($movil_phone)
    {
        $this->movil_phone = $movil_phone;
    }

    public function getMovilPhone()
    {
        return $this->movil_phone;
    }

    public function setAltEmail($alt_email)
    {
        $this->alt_email = $alt_email;
    }

    public function getAltEmail()
    {
        return $this->alt_email;
    }

    public function setWebsite($website)
    {
        $this->website = $website;
    }

    public function getWebsite()
    {
        return $this->website;
    }

}

现在,我正在尝试通过运行命令doctrine:schema:validate来验证这些实体,并且我收到此错误:

  

[Doctrine \ ORM \ Mapping \ MappingException]重复定义   实体'Sunahip \ UserBundle \ Entity \ Profile'中的列'城市化'   字段或鉴别器列映射。

我的问题:

  1. 我不知道出了什么问题,也不知道错误意味着什么是我第一次遇到这个错误。
  2. 我不知道我是否以正确的方式构建用户个人资料我的意思是我应该从BaseUser延伸还是从用户
  3. 我可以在这里给一些帮助吗?建议?想法?

1 个答案:

答案 0 :(得分:3)

你这里基本上有两个问题:

  1. 需要删除某处的重复urbanization列名称。只允许使用一个具有相同名称的列

  2. @ORM\Id实体中的重复Profile注释。从$user中删除一个,因为它不是您的Id