2016-03-21 10 views
0

Ich arbeite an einem Laravel 5.2 Projekt und ich habe Benutzer, Fahnen und Länder. Was im zu erreichen versuchen, ist, dass jeder Benutzer auf dem Flag-Menü klicken können, und es sollte eine Liste von Flags für das Land präsentieren sich der Benutzer befindet.Laravel 5.2- Beschränken user access

so Benutzer haben

Flags country_id country_id hat.

im Moment kann ich die Flags für jeden Benutzer und ihr jeweiliges Land anzeigen.

Hier ist die Route.

Route::get('flags/{Country_id}','[email protected]'); 

die Ansicht

<a href="flags/{{Auth::user()->country_id}}"> 

und mein Controller

public function showFlags($id) 
{ 

    $country = new Country; 
    $country = $country->find($id); 

    $flags = $country->flags; 


    return view('layouts.f.mainf',compact('flags')); 

} 

Das Problem ist, wenn ich die Grafschaft-ID in der URL auf etwas anderes ändern, wird es die Flaggen eines anderen zeigen Land, wie kann ich einschränken, dass es nur zugänglich sein kann, wenn das Benutzerland mit der URL des Landes übereinstimmt? Ich habe etwas über Middleware gelesen, aber um ehrlich zu sein, bin ich nicht sicher, wie man es benutzt.

Antwort

1

Ich glaube nicht, dass Middleware hier erforderlich ist, einfach nur tun dies

public function showFlags($id) 
{ 
    if($id != \Auth::user()->country_id) 
    { 
     throw new ProperException; 
    } 
    $country = new Country; 
    $country = $country->find($id); 

    $flags = $country->flags; 
    return view('layouts.f.mainf',compact('flags')); 
} 
+0

Können Sie erklären, welche Middleware für dann gut? und danke für die Antwort nach dem Sehen der Lösung Ich fühle mich irgendwie dumm – marybane

+0

Nein, fühle mich nicht schlecht, ich bin sicher, dass jeder manchmal in diese Art von Dingen, aber um ehrlich zu sein, verstehe ich nicht klar Ihre Frage, Sie Möchten Sie wissen, wo Sie Middlewares verwenden können? – Hrach

+0

Genau, wofür kann ich Middleware verwenden? – marybane