Default User
Ученик
(82),
на голосовании
1 год назад
Есть метод контроллера, который проверяет данные формы редактирования профиля. В нем прописана валидация для пароля, но правило "alpha_num" просто игнорируется и пользователь может создать пароль, не состоящий из букв и цифр, хотя правило для длины работает сам код:
``` public function updateProfile(Request $request) { $this->validate($request, [ 'name' => 'required|string|max:255', 'password' => 'nullable|string|min:8|alpha_num|confirmed', ]);
// остальной код для обновления профиля } ```
Возможно, проблема в том, что валидация не применяется к полю "password", так как оно необязательно для заполнения (nullable). Если пользователь оставляет поле пароля пустым, валидация не будет выполняться, и ошибки не будут отображаться.
Чтобы исправить это, можно добавить дополнительное правило "required_if", которое будет требовать заполнения поля пароля только в том случае, если пользователь указал новый пароль:
Здесь мы добавили правило "required_if:new_password,1", которое говорит о том, что поле пароля обязательно для заполнения, если значение поля "new_password" равно 1 (то есть пользователь указал новый пароль). Теперь валидация для правила "alpha_num" должна работать без проблем.
сам код: