Как правильно провести валидацию инвайта при регистрации пользователя?

Есть контроллер регистрации с методом:
public function register(Request $request)
    {
        $this->validator($request->all())->validate();

        $invite_avaible = \App\Invite::isAvailable($request->input('invite'););

        if ($invite_avaible) {
          $user = $this->create($request->all());
        }

        return $this->registered($request, $user)
                        ?: redirect($this->redirectPath())->with('success', 'We have sent an activation link on your email id. Please verify your account.');
    }


В данном методе еще и производится проверка инвайта на существование и возможность использования:
$invite_avaible = \App\Invite::isAvailable($request->input('invite'));

Вопрос следующий, как правильно проводить валидацию, чтобы можно было вывести свою ошибку типа: "Инвайт не действителен", "Инвайт не существует"?

Изучаю документацию, удобно было бы делать это в Validator, но насколько я понимаю, он не особо гибок в своей настройке.
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
Maksclub
@Maksclub
maksfedorov.ru
удобно было бы делать это в Validator, но насколько я понимаю, он не особо гибок в своей настройке.

https://laravel.com/docs/5.6/validation#custom-val...

То есть можно через свой класс, реализующий интерфейс Illuminate\Contracts\Validation\Rule,
можно через анонимку,
можно через экстеншн
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы