【问题标题】:How to write dynamic url method in laravel routes file?如何在 laravel 路由文件中编写动态 url 方法?
【发布时间】:2018-06-08 05:15:09
【问题描述】:

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

示例:

第一组路线

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,AlbumApiController, ArtistApiController”之外,似乎两个路由列表都相同。所以我需要动态地制作它,以便通过传递所需的参数来重用该代码。所以它看起来像下面或任何语法。

grid('albums', 'AlbumApiController');

提前致谢

【问题讨论】:

  • 这明显脱离了上下文,但您始终可以创建一条包罗万象的路线,该路线调用一个控制器操作。然后你有一个存储了所有路由的数据库表和一列要使用的操作/控制器等......

标签: php laravel routes


【解决方案1】:

你可以这样做:

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】:

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

    【讨论】:

      猜你喜欢
      • 2020-03-30
      • 2021-05-20
      • 2017-12-20
      • 2016-08-26
      • 1970-01-01
      • 2018-09-06
      • 2017-10-23
      • 2010-11-26
      • 1970-01-01
      相关资源
      最近更新 更多