如何使用相同的控制器对相似的 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
中有隐式路由
看这里....
我想美化我的路线,即,我有这样的条目:
// 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
中有隐式路由看这里....