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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在laravel路由文件中编写动态url方法?相关的知识,希望对你有一定的参考价值。

我有一堆路线列表,如下所述,供您参考。我必须动态地制作它。

例:

第一套路线

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

除了关键字“专辑,艺术家,AlbumApiController,ArtistApiController”之外,似乎路线列表都相同。所以我需要动态地创建它,以便通过传递所需的参数来重用该代码。所以它看起来像下面或任何语法让它成为。

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');
}
另一答案

你真的需要它们充满活力吗?如果没有,那么我建议将它们保留为现在......基本上路线文件会简要概述您的应用程序的结构,因此,保持您的路线尽可能可读是个好主意。

以上是关于如何在laravel路由文件中编写动态url方法?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 Laravel 4 中混合静态路由和动态路由?

Laravel 不使用 https 作为资产和动态路由

在子文件夹中使用 Laravel 时如何编写路由

如何检查路由“URL”是否存在?

在视图上生成 URL 时,Laravel 命名路由方法不会生成主机服务器的 (apache) 别名

laravel中的动态网址?