Фреймворк Laravel 5 перенаправление ошибка в цикле
Я пытаюсь сделать скрипт входа и администратора, проблема в том, что у меня есть цикл перенаправления, я не знаю, почему.
Я хочу логин пользователей и может быть в /
пути не /home
.
Если изменить return new RedirectResponse(url('/'));
на return new RedirectResponse(url('/anotherpage'));
это работает, но я хочу быть /
Маршруты:
Route::get('/', [
'as' => 'home', 'uses' => 'HomeController@index'
]);
// Tutorials Routes
Route::get('/tutorials', 'HomeController@tutorials');
Route::get('/tutorials/{category?}', 'HomeController@tutorialsCategory');
Route::get('/tutorials/{category?}/{lesson?}', 'HomeController@tutorialsLesson');
// Courses and Series Routes
Route::get('/courses-and-series', 'HomeController@coursesandseries');
// Admin Routes
Route::group(['middleware' => 'AppHttpMiddlewareAdminMiddleware'], function()
{
Route::get('/admin', function()
{
return 'Is admin';
});
});
Route::controllers([
'auth' => 'AuthAuthController',
'password' => 'AuthPasswordController',
]);
Admin middleware:
public function handle($request, Closure $next)
{
if (Auth::user()->type != 'Admin')
{
return abort(404);
}
return $next($request);
}
RedirectIfAuthenticated:
public function handle($request, Closure $next)
{
if ($this->auth->check())
{
return new RedirectResponse(url('/'));
}
return $next($request);
}
Домашний Контроллер:
class HomeController extends Controller {
public function __construct()
{
$this->middleware('guest');
}
public function index()
{
return view('home');
}
public function tutorials()
{
return view('pages.tutorials');
}
public function tutorialsCategory()
{
return view('pages.tutorials');
}
public function tutorialsLesson()
{
return view('pages.single');
}
public function coursesandseries()
{
return view('pages.coursesandseries');
}
public function single()
{
return view('pages.single');
}
}
1 ответ:
У вас есть эти циклы перенаправления, потому что все методы в HomeController защищены гостевым промежуточным программным обеспечением.
Так как вы хотите перенаправить аутентифицированных пользователей на HomeController@index
Удалить
$this->middleware('guest');
из HomeControllerИли
Измените гостевое промежуточное ПО, чтобы игнорировать метод индекса
$this->middleware('guest', ['only' => ['tutorials','tutorialsCategory']])
Перечислите другие методы, которые вы хотите защитить с помощью гостевого промежуточного ПО, исключая метод индекса