I имеет следующие свойства ни столбцов в пользовательском enitityZF2 свойство doctrine2 отношений не работает
/**
*
* @ORM\ManyToOne(targetEntity="\Auth\Entity\Company", inversedBy="user")
* @ORM\JoinColumn(name="companyID", referencedColumnName="id")
*/
protected $company;
/**
*
* @ORM\ManyToOne(targetEntity="\Auth\Entity\Role", inversedBy="user")
* @ORM\JoinColumn(name="roleID", referencedColumnName="id")
*/
protected $role;
я не имею роли столбца или компанию в таблице пользователей. Но я Хэ столбец Идентификатор роли и CompanyID в таблице пользователей и тир соответствующие свойства в пользовательской сущности, как показано ниже
/**
* @ORM\Column(type="integer")
* @ORM\ManyToOne(targetEntity="\Auth\Entity\Role", inversedBy="user")
* @ORM\JoinColumn(name="roleID", referencedColumnName="id")
*/
protected $roleID;
/**
* @ORM\Column(type="integer")
* @ORM\ManyToOne(targetEntity="\Auth\Entity\Company", inversedBy="user")
* @ORM\JoinColumn(name="companyID", referencedColumnName="id")
*/
protected $companyID;
В контроллере пользователя при попытке добавить запись, используя следующие строки добавляет запись успешно, но без Идентификатор роли и CompanyID
$userData = array("username" => $username, "pass" => $secPass,
"salt" => $salt, "companyID" => $companyID,
"roleID" => $roleID, "cost" => $cost
);
$user->populate($userData);
$this->getEntityManager()->persist($user);
$this->getEntityManager()->flush();
но если удалить эти два свойства из объекта пользователя, то он также добавить и CompanyID Идентификатор роли
protected $company;
protected $role;
, но мне также нужны свойства выше. Я не мог понять, почему этот конфликт,
Кто-нибудь сталкивался с этой проблемой? и как разобраться в этом? Есть идеи?
AFAIK, вы никогда не должны иметь идентификаторы в свойствах объекта. –
Вам не нужно сопоставлять эти colums '$ companyID' и' $ roleID', вы можете использовать '$ this-> company-> getId()' и '$ this-> role-> getId()'. Вы также можете создавать прокси-методы в своей организации, если вам это нужно часто. –