Исключение: Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken::serialize() должен возвращать строку или NULL

Я не могу аутентифицироваться в 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 

Итак, кто-нибудь может предложить способ решения этой проблемы?

5
задан naitsirch 26 November 2019 в 12:06
поделиться