Я пытаюсь сделать скрипт входа и администратора, проблема в том, что у меня есть цикл переадресации. Я не знаю, почему.
Я хочу пользователей входа и могу быть в /
path not /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' => 'App\Http\Middleware\AdminMiddleware'], function() { Route::get('/admin', function() { return 'Is admin'; }); }); Route::controllers([ 'auth' => 'Auth\AuthController', 'password' => 'Auth\PasswordController', ]);
Средство администрирования:
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'); } }
У вас есть эти петли перенаправления, потому что все методы в HomeController защищены гостевым промежуточным ПО.
Поскольку вы хотите перенаправить пользователей, прошедших проверку подлинности, в HomeController @ index
Удалите $this->middleware('guest');
от HomeController
или
Измените гостевое промежуточное программное обеспечение, чтобы игнорировать метод индекса
$this->middleware('guest', ['only' => ['tutorials','tutorialsCategory']])
Перечислите другие методы, которые вы хотите защитить с помощью посредника Guest, исключая метод Index