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

Есть контроллер регистрации с методом:
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, но насколько я понимаю, он не особо гибок в своей настройке.
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
Maksclub
@Maksclub
maksfedorov.ru
удобно было бы делать это в Validator, но насколько я понимаю, он не особо гибок в своей настройке.

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

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

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

Войти через центр авторизации
Похожие вопросы