Я не могу пройти аутентификацию в 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
Итак, кто-нибудь может предложить, пожалуйста, способ преодоления этой проблемы?