在同一组下添加路由 class 的更好方法

Better way to add route class under the same group

我正在使用 Laravel 5.4

路由服务提供商代码如下

Route::prefix('api/v1')
     ->middleware('api')
     ->namespace($this->namespace)
     ->group(base_path('routes/Login.php'));

Route::prefix('api/v1')
     ->middleware('api')
     ->namespace($this->namespace)
     ->group(base_path('routes/Register.php'));

有什么办法可以把两个路由文件写在同一个组下吗?

像这样...

Route::prefix('api/v1')
    ->middleware('api')
    ->namespace($this->namespace)
    ->group(base_path('routes/Login.php'))
    ->group(base_path('routes/Register.php'));

在 5.3 中。我们可以这样写...

Route::group([
    'middleware'    => 'auth:api',
    'namespace'     => $this->namespace,
    'prefix'        => 'api/v1',
], function ($router) {
    require base_path('routes/API/Driver/Driver.php');
    require base_path('routes/API/Vehicle/Vehicle.php');
});

您可以在 5.4 中使用与 5.3 中相同的解决方案

    Route::group(['prefix' => 'api', /* .... */], function () {

        // extract this to external files as needed
        Route::get('/path', 'HomeController@method');

    });

group方法接受一个函数作为参数,所以它应该只是

Route::prefix('api/v1')
    ->middleware('api')
    ->namespace($this->namespace)
    ->group(function ($router) {
        require base_path('routes/API/Driver/Driver.php');
        require base_path('routes/API/Vehicle/Vehicle.php');
    });


// routes/API/Driver/Driver.php
<?php

Route::get('/drivers', 'DriverController@method');
// (Route URI is '/api/v1/drivers');