Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在laravel路由文件中编写动态url方法?_Php_Laravel_Routes - Fatal编程技术网

Php 如何在laravel路由文件中编写动态url方法?

Php 如何在laravel路由文件中编写动态url方法?,php,laravel,routes,Php,Laravel,Routes,我有一个下面提到的路线列表供您参考。我必须让它成为动态的 示例: 第一组路线 Route::get('artists/info', 'ArtistApiController@getInfo'); Route::post('artists/records', 'ArtistApiController@postRecords'); Route::post('artists/action', 'ArtistApiController@postAction'); Route::post('artists

我有一个下面提到的路线列表供您参考。我必须让它成为动态的

示例:

第一组路线

Route::get('artists/info', 'ArtistApiController@getInfo');
Route::post('artists/records', 'ArtistApiController@postRecords');
Route::post('artists/action', 'ArtistApiController@postAction');
Route::post('artists', 'ArtistApiController@postAdd');
Route::put('artists/update/{id}', 'ArtistApiController@postAdd');
Route::post('artists/update-status/{id}', 'ArtistApiController@postUpdateStatus');
第二组路线

Route::get('albums/info', 'AlbumApiController@getInfo');
Route::post('albums/records', 'AlbumApiController@postRecords');
Route::post('albums/action', 'AlbumApiController@postAction');
Route::post('albums', 'AlbumApiController@postAdd');
Route::put('albums/update/{id}', 'AlbumApiController@postAdd');
Route::post('albums/update-status/{id}', 'AlbumApiController@postUpdateStatus');
除了关键字“albums,artists,AlbumApicController,ArtistapicController”之外,这两个路由列表似乎是相同的。所以我需要动态地创建它,以便通过传递所需的参数来恢复代码。所以它看起来像下面,或者不管它是什么语法

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

你真的需要他们是动态的吗?如果没有,那么我建议让他们保持现状。。。基本上,routes文件为您提供了应用程序结构的简要概述,因此,尽可能保持路由的可读性是一个好主意

这显然与上下文无关,但您始终可以创建一个“一网打尽”的路由,该路由调用一个控制器操作。然后你有一个DB表,其中存储了所有路由,还有一列要使用的操作/控制器,等等。。。