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

How to group similar Laravel routes using the same controller?

我想美化我的路线,即,我有这样的条目:

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

虽然是个很好的功能。但是在Laravel

中是做不到的

All your routes must be explicit, Laravel won't/can't assume that you are using same controller for all the routes. So you will have to define all the routes explicitly.

只有资源控制器可以在 Laravel

中有隐式路由

看这里....

Route use the same controller