Symofny - «пароль» не может быть нулевым - PullRequest
0 голосов
/ 06 июля 2018

Я реализовал функцию для проверки длины моего пароля в реестре вызова API, как ..

if($password){
    $this->validatePassword($password);
    }

с другого вызова API.

public function validatePassword($password)
{
    if (strlen($password) < 6)
    {
        throw new PasswordLength('Password must be minimum 6 characters long!');
    }
}

и в моем почтальоне я не возвращаю пустое поле, но получаю сообщение об ошибке

Нарушение ограничения целостности: 1048 Столбец "пароль" не может быть пустым

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Решено!

if($password){
    $this->validatePassword($password);
}

$user->setPassword($password);
0 голосов
/ 06 июля 2018

В symfony поле plainPassword используется исключительно для переноса нового пароля пользователя в метод, который будет его кодировать и устанавливать его на password.

После заполнения поля password поле plainPassword остается пустым, поэтому учетные данные в виде простого текста не сохраняются в БД. Это делается путем вызова реализованного метода eraseCredentials (находится в необходимом UserInterface ). Или вы можете сделать метод plainPassword непостоянным в пользовательском классе.

Посмотрите здесь на документы, чтобы узнать, как все это сделать.

Документы показывают выдержку из того, что должно быть служебным классом менеджера пользователей. Используйте это для установки и обновления паролей, а также для создания новых пользователей.

Здесь более полное объяснение здесь , где весь процесс объясняется от начала до конца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...