2017-12-27 10 views
4

Ich habe eine Reihe von Routen Liste, die unten für Ihre Referenz erwähnt sind. Ich muss es so dynamisch machen.Wie schreibt man dynamische URL-Methode in Laravel-Routen-Datei?

Beispiel:

erste Satz von Routen

Route::get('artists/info', '[email protected]'); 
Route::post('artists/records', '[email protected]'); 
Route::post('artists/action', '[email protected]'); 
Route::post('artists', '[email protected]'); 
Route::put('artists/update/{id}', '[email protected]'); 
Route::post('artists/update-status/{id}', '[email protected]'); 

zweiten Satz von Routen

Route::get('albums/info', '[email protected]'); 
Route::post('albums/records', '[email protected]'); 
Route::post('albums/action', '[email protected]'); 
Route::post('albums', '[email protected]'); 
Route::put('albums/update/{id}', '[email protected]'); 
Route::post('albums/update-status/{id}', '[email protected]'); 

Es scheint sowohl die Routenliste sind gleich, außer dem Stichwort „Alben, Interpreten, AlbumApiController, ArtistApiController ". Also muss ich es dynamisch machen, um den Code durch Übergeben der erforderlichen Parameter wiederzuverwenden. So dass es wie unten aussieht oder wie auch immer die Syntax aussehen mag.

grid('albums', 'AlbumApiController'); 

Vielen Dank im Voraus

+0

Dies ist offensichtlich außerhalb des Kontexts, aber Sie könnten immer einen Fang alle Route erstellen, die eine Controller-Aktion aufruft. Dann haben Sie eine DB-Tabelle mit all Ihren Routen gespeichert und eine Spalte welche Aktion/Controller zu verwenden, etc ... – TheDeveloper

Antwort

2

Sie so etwas tun könnte:

foreach (['artists' => 'ArtistApiController', 'albums' => 'AlbumApiController'] as $route => $controller) { 
    Route::get($route . '/info', $controller . '@getInfo'); 
    Route::post($route . '/records', $controller . '@postRecords'); 
    Route::post($route . '/action', $controller . '@postAction'); 
    Route::post($route, $controller . '@postAdd'); 
    Route::put($route . '/update/{id}', $controller . '@postAdd'); 
    Route::post($route . '/update-status/{id}', $controller . '@postUpdateStatus'); 
} 
2

Sie benötigen sie Sie wirklich dynamisch zu sein? Wenn nicht, dann würde ich vorschlagen, sie so zu belassen, wie sie jetzt sind ... Im Grunde geben die Routes-Dateien einen kurzen Überblick über die Struktur Ihrer App. Daher wäre es eine gute Idee, Ihre Routen so leserlich wie möglich zu halten.