如何使用同一个控制器对类似的Laravel路由进行分组?

时间:2017-06-07 12:37:42

标签: php laravel routes laravel-5.3

我想漂亮我的路线,即我有这样的条目:

// DataTable
Route::get('dt/reservations/{room_id]', 'DataTablesController@reservations')->where(['room_id', '[0-9]+']);
Route::get('dt/rooms/{area_id]', 'DataTablesController@rooms')->where(['area_id', '[0-9]+']);
Route::get('dt/departments', 'DataTablesController@departments');
Route::get('dt/addresses', 'DataTablesController@areas');
Route::get('dt/areas', 'DataTablesController@areas');

我想让它更容易理解。我可以添加前缀,它会给我:

// DataTable
Route::group(['prefix' => 'dt'], function () {
    Route::get('reservations/{room_id]', 'DataTablesController@reservations')->where(['room_id', '[0-9]+']);
    Route::get('rooms/{area_id]', 'DataTablesController@rooms')->where(['area_id', '[0-9]+']);
    Route::get('departments', 'DataTablesController@departments');
    Route::get('addresses', 'DataTablesController@areas');
    Route::get('areas', 'DataTablesController@areas');
});

但我能以某种方式完成其余的工作吗?路径名称和方法名称将始终相同。 是否有可能做出类似的事情:

// DataTable
Route::group(['prefix' => 'dt'], function () {
    Controller => DataTablesController,
    Methods => [
        'reservations',
        'rooms',
        'departments',
        'addresses',
        'areas'
    ];
});

1 个答案:

答案 0 :(得分:1)

虽然功能非常好。但它不能在Laravel

中完成
  

您的所有路线必须明确,Laravel赢得/不能假设您   正在为所有路线使用相同的控制器。   因此,您必须明确定义所有路由。

只有资源控制器可以在Laravel中隐式路由

看看这里....

Route use the same controller