4
我正在使用FOSUserBundle,我需要構建用戶配置文件。這是我做過什麼:實體上的「城市化」列的重複定義
創建用戶類和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] Duplicate definition of column 'urbanization' on entity 'Sunahip\UserBundle\Entity\Profile' in a field or discriminator column mapping.
我的問題:
- 我不知道什麼是錯的,也不知道是什麼錯誤意味着是我第一次得到這個錯誤。
- 我不知道如果我建立的用戶配置文件以正確的方式我的意思是,如果我應該BaseUser或用戶擴展
我能給予一定的幫助嗎?建議?想法?
粘貼您的個人檔案實體的其餘部分。最簡單的解決方案就像在錯誤消息 - 重複定義城市化列 –
@TomaszMadeyski你是對的我想改變兩個屬性的列名稱,我已經修復,但現在錯誤是這['Doctrine \ ORM \ Mapping \ MappingException] 實體「Sunahip \ UserBundle \ Entity \ Profile」具有複合標識符,但使用的不是手動分配(Identity,Sequence)的ID生成器。這不支持.',爲什麼? – ReynierPM
,因爲您的實體定義 –