Я не могу аутентифицироваться в symfony2 с сущностью «Сотрудник», так как она содержит множество сопоставлений с другими сущностями в моем проекте. некоторые из моих сопоставлений выглядят следующим образом:
/**
* @var EmployeeDesignation
*
* @ORM\ManyToOne(targetEntity="EmployeeDesignation")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="employee_designation_id", referencedColumnName="id")
* })
*/
private $employeeDesignation;
/**
* @var EmployeeDesignation
*
* @ORM\ManyToOne(targetEntity="EmployeeType")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="employee_type_id", referencedColumnName="id")
* })
*/
private $employeeType;
Аутентификация работает нормально без какого-либо сопоставления. Я пробовал использовать в нем методы 'Serialize()' и 'Unserialize()', как показано ниже:
class Employee implements AdvancedUserInterface, \Serializable {
/**
* serialize the username
* @return serialize
*/
public function serialize() {
return serialize($this->emailOfficial);
}
/**
* unserialize
* @param $data
*/
public function unserialize($data) {
$this->em = unserialize($data);
}
}
Я получаю следующую ошибку после выполнения вышеуказанного метода:
You cannot refresh a user from the EntityUserProvider that does not contain an identifier. The user object has to be serialized with its own identifier mapped by Doctrine.
Я пытался таким образом избавиться от предыдущая ошибка, которая выглядит следующим образом:
Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken::serialize() must return a string or NULL
Итак, кто-нибудь может предложить способ решения этой проблемы?