2016-12-17 4 views
1

Ich entwickle Web-Anwendung mit Laravel 5.2. Was ich brauche, ist, dass ich ein Konto habe, das sich nach der Rolle unterscheidet. und ich muss Rolle, die auf 1 Route zugreifen kann, aber andere Rolle kann nicht zugreifen. Ich habe Surfen und ich habe alles getan, was ich gefunden habeLaravel mehrere Middleware für einige Route

Route::group(['prefix' => '/', 'middleware' => ['role:user_a','role:user_b']], function(){someroute} 

Route::group(['prefix' => '/', 'middleware' => ['role:user_a|role:user_b']], function(){someroute} 

Route::group(['prefix' => '/', 'middleware' => ['role:user_a,role:user_b']], function(){someroute} 

niemand arbeiten. Ich weiß nicht, wie man meine einzige Route kann durch 2 Rollen, aber deaktivieren Sie für andere Rolle

Antwort

0

Ich denke, Sie können dies nicht tun, aber Sie können diesen Weg nutzen.

Route::group(['prefix'=>'/', 'middleware' =>['role:user_a','role:user_b']],function(){ 

     Route::group(['prefix'=>'userAorB', 'middleware' =>['role:user_a|role:user_b']],function(){ Routes }); 
     Route::group(['prefix'=>'userAANDB', 'middleware' =>['role:user_a,role:user_b']],function(){ Routes }); 

}) 
+0

ich bekomme eror ErrorException in Router.php Zeile 579: trim() erwartet Parameter 1 als String, Array gegeben – Frasaccordi

+0

ist das mögliche Verwendung Route bekommen? nicht Routengruppe? – Frasaccordi

+0

@ Frasaccordi das war mein Fehler bearbeitet. –

0

Sie können eine Middleware erstellen role genannt, mehr über Middleware in docs lesen here

Die handle Methode der Middleware wie sein:

public function handle($request, Closure $next) 
{ 
    if (auth()->user()->role('b')) { 
     return redirect('home'); 
    } 
    // else users of other roles can visit the page 
    return $next($request); 
} 

Dann Sie es in Ihrer Route verwenden können file as:

Route::group(['middleware' => 'role'], function() { 
    // someroute 
}); 
Verwandte Themen