Я учусь использовать Cartalyst / Sentinel.
Я
1) Установил Laravel и импортировал пакет. Запустите миграции и сгенерируйте необходимые таблицы.
2) Я создал форму регистрации пользователя и контроллер, который
Если пользователь активирует, нажав на ссылку, он может войти в систему.
Если они не активируются, они не могут (что я и хочу).
Моя проблема в том, что у меня есть следующий метод, который пытается поймать, если есть NotActivationException. Я хочу перенаправить пользователя на домашнюю страницу, которая предупреждает пользователя о том, что эта учетная запись не активирована. Но я получаю сообщение об ошибке Laravel, а не мое представление, которое отображает ошибку. Вот мой код
публичная функция postSignin () {
try {
// Validation
$validation = Validator::make(Input::all(), [
'email' => 'required|email',
'password' => 'required'
]);
if ($validation->fails()) {
return Redirect::route('signin')->withErrors($validation)->withInput();
}
$remember = (Input::get('remember') == 1) ? true : false;
if ($user = Sentinel::authenticate(Input::all(), $remember)) {
return Redirect::route('home')->with('global', 'Howdy ' . $user->username . '!');
}
$errors = 'Invalid Email / Password';
return Redirect::route('signin')->with('global', $errors);
} catch (NotActivatedException $e) {
$errors = 'Account not activated.';
return Redirect::route('signin')->with('global', $errors);
}
return Redirect::route('home')->with('global', 'There was a problem signing you in.');
}
Я не уверен, почему улов не работает, так как я хотел бы отобразить страницу входа с ошибкой, которая гласит: «Учетная запись не активирована». Вместо этого я получаю страницу отладки Laravel, которая выглядит следующим образом.
Вы должны использовать полное имя класса:
catch (\Cartalyst\Sentinel\Checkpoints\NotActivatedException $e)
Вы также можете добавить use Cartalyst\Sentinel\Checkpoints\NotActivatedException;
вверху вашего файла контроллера, чтобы иметь доступ к нему без использования полного имени класса.
Сделайте это в каждом контроллере, который упоминает NotActivatedException
,