【问题标题】:How to group similar Laravel routes using the same controller?如何使用相同的控制器对相似的 Laravel 路由进行分组?
【发布时间】:2017-11-08 19:39:18
【问题描述】:

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

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

【问题讨论】:

    标签: php laravel routes laravel-5.3


    【解决方案1】:

    虽然是一个很好的功能。但是在 Laravel 中是不行的

    您的所有路线都必须是明确的,Laravel 不会/不能假设您 对所有路线使用相同的控制器。 因此,您必须明确定义所有路由。

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

    看这里....

    Route use the same controller

    【讨论】:

    • 太糟糕了,标记我,如果这有变化:)
    • @DainisAbols 当然会告诉你:)
    猜你喜欢
    • 1970-01-01
    • 2013-09-24
    • 2016-03-29
    • 2017-04-05
    • 2016-10-03
    • 2016-09-07
    • 2012-09-21
    • 2018-02-18
    • 1970-01-01
    相关资源
    最近更新 更多