2015-05-08 21 views
11

Ich versuche, ein Login-und Admin-Skript zu machen, das Problem ist, dass ich eine Redirect-Schleife habe ich weiß nicht warum.Laravel 5 Weiterleitungsschleife Fehler

Ich möchte die Login-Benutzer und kann in der / Pfad nicht /home sein.

Wenn Änderung return new RedirectResponse(url('/'));-return new RedirectResponse(url('/anotherpage')); es funktioniert, aber ich will /

Routen sein:

Route::get('/', [ 
     'as' => 'home', 'uses' => '[email protected]' 
    ]); 


    // Tutorials Routes 

    Route::get('/tutorials', '[email protected]'); 
    Route::get('/tutorials/{category?}', '[email protected]'); 
    Route::get('/tutorials/{category?}/{lesson?}', '[email protected]'); 

    // Courses and Series Routes 

    Route::get('/courses-and-series', '[email protected]'); 

    // 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', 
    ]); 

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); 
    } 

Home Controller:

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'); 
    } 
} 
+0

versuchen, diese 'return new RedirectResponse (Route ('home'));' – Digitlimit

+0

Es funktioniert nicht ERR_TOO_MANY_REDIRECTS – Roberto

+0

sind dies die einzigen Routen, die Sie haben? Hast du eine Middleware in einem Controller-Konstrukt? Hast du eine Middleware an HomeController angehängt? Darf ich den Code für HomeController sehen? Das Problem könnte von ihm sein – Digitlimit

Antwort

9

Sie diese Umleitung sind mit Schleifen, weil alle Methoden in Homecontroller durch Guest Middleware geschützt sind.

Da Sie wollen authentifizierte Benutzer umleiten zu Homecontroller @ Index

entfernen $this->middleware('guest'); von Homecontroller

oder

das Gastmiddleware ändern Index-Methode

$this->middleware('guest', ['only' => ['tutorials','tutorialsCategory']])

Liste zu ignorieren andere Methoden, die Sie mit Guest Middlew schützen möchten sind ausgeschlossen Index-Methode