2016-06-20 11 views
0

Ich habe einige Routen in routes.php in LaravelWie Routen mit Ressourcen in Laravel erklären 5.2

// Code for rounting admin panel 
Route::resource('/admin','Admin\[email protected]'); 
Route::resource('/admin/dashboard','Admin\[email protected]'); 
Route::resource('/admin/movies','Admin\[email protected]'); 

Nun, wenn ich die URL-Zugriff http://localhost/askspidy/admin Ich mag Login-Seite zeigen, und es funktioniert, aber wenn ich die URL-Zugriff http://localhost/askspidy/admin/dashboard sollte es zum Armaturenbrett gehen, aber es zeigt mir nur Login-Seite. Ich weiß, das liegt daran, dass, wenn es/admin in jeder URL gefunden ist es bydefault auf die Route

Route::resource('/admin','Admin\[email protected]'); 

wissen geht ich es, dass (/ admin) ist unter der Annahme Weg zum Controller und (/ Armaturenbrett) wird die Funktion erklärt in der Controller, aber ich möchte nur so routing, so gibt es keine andere Lösung für dieses Problem.

+0

Versuchen in der Routenberechnung mit Namespace und Präfix, um Wiederholungen zu vermeiden. –

Antwort

1

Ein RESTful Resource Controller übernimmt die Verantwortung für jede Aktion. Sie müssen nur den Namen und den Controller zur Liste:

Route::resource('photo', 'PhotoController'); 

Wenn Sie nur wollten die index Methode verwenden, würden Sie geben Sie es wie folgt aus:

Route::resource('photo', 'PhotoController', ['only' => [ 
    'index' 
]]); 

Aber es sieht aus wie zwei von Ihre Routen sind nicht für Ressourcen (Login und Dashboard) geeignet, da sie sich auf die Bearbeitung eines Modells beziehen sollten.

Sie sollten stattdessen stattdessen nur eine get() Ressource verwenden.

From the docs:

Route::get('user/{id}', '[email protected]'); 

Also in Ihrem Fall wäre es:

Route::get('/admin','Admin\[email protected]'); 
Route::get('/admin/dashboard','Admin\[email protected]'); 
Route::resource('/admin/movie','Admin\MovieController'); 
+1

Danke, das funktionierte für mich, ja, es gab keinen Bedarf an Ressourcen für Login und Dashboard. – dollar