【问题标题】:Laravel optimize routesLaravel 优化路线
【发布时间】:2016-06-28 16:54:18
【问题描述】:

有没有机会减少routes.php

我有一个用于日、周、月和年操作的模型方法。这是仅适用于每周运营的路线,但我在其他时期也有相同的路线。有没有办法减少它们?

Route::get('capacity/{capacity}/createweekly', [
    'as' => 'admin.capacity.createweekly', 'uses' => 'CapacityController@createweekly'
]);
Route::put('capacity/{capacity}/storeweekly', [
    'as' => 'admin.capacity.storeweekly', 'uses' => 'CapacityController@storeweekly'
]);
Route::get('capacity/{period}/activateweekly', [
    'as' => 'admin.capacity.activateweekly', 'uses' => 'CapacityController@activateweekly'
]);
Route::get('capacity/{period}/deactivateweekly', [
    'as' => 'admin.capacity.deactivateweekly', 'uses' => 'CapacityController@deactivateweekly'
]);
Route::get('capacity/{period}/deleteweekly', [
    'as' => 'admin.capacity.deleteweekly', 'uses' => 'CapacityController@deleteweekly'
]);
Route::get('capacity/{period}/editweekly', [
    'as' => 'admin.capacity.editweekly', 'uses' => 'CapacityController@editweekly'
]);
Route::post('capacity/{period}/updateweekly', [
    'as' => 'admin.capacity.updateweekly', 'uses' => 'CapacityController@updateweekly'
]);

【问题讨论】:

  • 每条路线看起来都在做不同的事情。减少它们是什么意思?是否要删除该功能?
  • 是的,它们有不同的功能,但我希望有类似 Route::get('url_like_the_method', ['as' => 'url_like_the_method'], 'uses' => 'Controller@method ']);还是使用 Route::resource() 方法?

标签: php laravel optimization routes laravel-5.2


【解决方案1】:

您可以尝试将它们分组:

Route::group(['as' => 'admin.capacity.', 'prefix' => 'capacity'], function () {
        Route::get('{capacity}/createweekly', [
                'as' => 'createweekly', 'uses' => 'CapacityController@createweekly'
            ]);
        Route::put('{capacity}/storeweekly', [
                'as' => 'storeweekly', 'uses' => 'CapacityController@storeweekly'
            ]);
        Route::get('{period}/activateweekly', [
                'as' => 'activateweekly', 'uses' => 'CapacityController@activateweekly'
            ]);
        Route::get('{period}/deactivateweekly', [
                'as' => 'deactivateweekly', 'uses' => 'CapacityController@deactivateweekly'
            ]);
        Route::get('{period}/deleteweekly', [
                'as' => 'deleteweekly', 'uses' => 'CapacityController@deleteweekly'
            ]);
        Route::get('{period}/editweekly', [
                'as' => 'editweekly', 'uses' => 'CapacityController@editweekly'
            ]);
        Route::post('{period}/updateweekly', [
                'as' => 'updateweekly', 'uses' => 'CapacityController@updateweekly'
            ]);
    });

【讨论】:

  • 是的,组很好,但它并没有减少代码行数:)
  • 你可以只写 Route::controller('capacity', 'CapacityController');但是你必须重写你的控制器和 urls 用法,也不会有路由名称
猜你喜欢
  • 1970-01-01
  • 2016-10-11
  • 1970-01-01
  • 1970-01-01
  • 2014-05-23
  • 2015-02-25
  • 1970-01-01
  • 2022-10-25
  • 2014-12-28
相关资源
最近更新 更多