Я зашел в тупик здесь. Когда я сохраняю любую сущность в моем контроллере, пароль и соль пользователя, который в данный момент вошел в систему, в базе данных не отображаются.
Это релевантная часть моей конфигурации безопасности:
security:
encoders:
ISE\LoginBundle\Entity\User:
algorithm: sha1
iterations: 1
encode_as_base64: false
providers:
main:
entity:
class: ISE\LoginBundle\Entity\User
property: username
Это метод eraseCredentials моего пользовательского класса. Я подозреваю, что в какой-то момент этот метод вызывается, а затем пользовательский объект сохраняется в базе данных с этими изменениями. Но я понятия не имею, где это может быть:
class User implements UserInterface {
// ...
public function eraseCredentials() {
$this->password = null;
$this->salt = null;
}
// ...
}
И это пример того, как я сохраняю сущность в одном из моих контроллеров, в данном случае это ProductController. Просто напоминание: я не манипулирую объектом User в моем коде каким-либо образом:
public function createAction() {
// ...
if ($form->isValid()) {
$em = $this->get('doctrine')->getEntityManager();
$em->persist($product);
$em->flush();
return $this->redirect($this->generateUrl('product_create', array('created' => true)));
}
// ...
}
Я не ожидал бы, что какой-либо из этого кода удалит пароль пользователя или соль в базе данных, но именно это и происходит. Может ли кто-нибудь помочь мне превратить мой код в представление?