2017-12-27 56 views
4

私はあなたの参照のために以下に述べるルートリストの束を持っています。私はそれを動的にする必要があります。laravel routesファイルに動的URLメソッドを書き込む方法は?

例:ルート

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

まずセット

ルート

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]'); 
に思え

第二組の両方のルートリストは、キーワード「アルバム、アーティスト以外は同じです、 AlbumApiController、ArtistApiController "と表示されます。だから私は必要なパラメータを渡すことによってそのコードを再利用するために動的にする必要があります。それは以下のように見えるか、あるいはどんな構文であっても見えるようになります。事前

+0

これは明らかに文脈から外れていますが、1つのコントローラーアクションを呼び出す1つのキャッチオールルートを常に作成できます。次に、あなたのルートがすべて格納されたDBテーブルと、どのアクション/コントローラを使用するかなどの列があります。 – TheDeveloper

答えて

2

grid('albums', 'AlbumApiController'); 

ありがとうございますこのような何か行うことができます:

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

は、あなたが実際にそれらを動的にする必要がありますかを?そうでない場合は、今のままにしておくことをお勧めします。ルートファイルは基本的にアプリの構造の概要を示していますので、ルートをできるだけ読みやすくすることをお勧めします。

関連する問題