У меня возникли проблемы при попытке создать собственный фильтр. Моя цель — убедиться, что аутентифицированный пользователь выполнил определенные условия, прежде чем позволить им посещать маршруты, определенные в группе.
Прямо сейчас это просто продолжает без проблем, хотя я подтвердил, что одно из этих условий выполнено. Это игнорирует мои перенаправления.
routes.php
Route::group(array('before' => 'registered'), function()
{
Route::get('/page', array('as' => 'page', 'uses' => 'PageController@getIndex'));
});
filters.php
Route::filter('registered', function()
{
if(Auth::check())
{
if(!Auth::user()->confirmed())
{
return Redirect::route('signup.send.confirmation')->with('alert-warning', 'You must confirm your email address before continuing. Fill out the form below if you need a new activation email. Thank you!');
}
if(!Auth::user()->registered)
{
return Redirect::route('signup.profile')->with('alert-warning', 'You must fill out the following information before continuing. Thank you!');
}
}
});
Любая помощь очень ценится! Спасибо!
Я думаю, что есть проблема с вашим фильтром. Похоже, что вы разрешаете незарегистрированным пользователям идти по этому маршруту. Я думаю, что вам нужно это:
Route::filter('registered', function()
{
if(!Auth::check()) {
return Redirect::route('signup.profile')->with('alert-warning', 'You must fill out the following information before continuing. Thank you!');
}
else
{
if(!Auth::user()->confirmed())
{
return Redirect::route('signup.send.confirmation')->with('alert-warning', 'You must confirm your email address before continuing. Fill out the form below if you need a new activation email. Thank you!');
}
}
});
Если это не решит проблему, вы должны предоставить более подробную информацию, особенно о том, как вы проверяете эти условия, и если вы уверены, что этот фильтр запущен.
Я не знаю, как это объяснить, но сейчас все работает так, как написано в моем оригинальном посте. Должно быть, я где-то пропустил тест.
Аутентификация не требуется для доступа к странице. Но если они Аутентифицированы, я хочу убедиться, что они выполнили все шаги, необходимые для создания полной учетной записи / профиля. Это причина для фильтра, он не перенаправляет их, если они не аутентифицированы.
Если вы хотите сделать пользовательский фильтр, мой оригинальный вопрос работает! Извините, что потратил впустую время.