在 Lumen 中使用路由前缀

Using Route Prefixes in Lumen

来自 Lumen 5.2 文档:

The prefix group attribute may be used to prefix each route in the group with a given URI. For example, you may want to prefix all route URIs within the group with admin:

$app->group(['prefix' => 'admin'], function () use ($app) {
    $app->get('users', function ()    {
        // Matches The "/admin/users" URL
    });
});

我的代码:

$app->group(['prefix' => 'v1'], function () use ($app) {
    $app->get('lessons', function ()    {
        ['as' => 'lessons.index', 'uses' => 'LessonsController@index'];
    });
});

这个 returns 一个 200 但它显然没有调用 LessonsController 上的 index() 方法。

我也试过这个:

$app->group(['prefix' => 'v1'], function () use ($app) {
    $app->get('lessons', ['as' => 'lessons.index', 'uses' => 'LessonsController@index']);
});

结果 ReflectionException in Container.php line 738: Class LessonsController does not exist

我目前正在使用这样的前缀:

$app->group(['namespace' => "App\Http\Controllers", 'prefix' => 'v1'], function($app){
    $app->get('/lessons', 'LessonsController@index');   
});

这在我的 Lumen 版本中运行良好。您将访问 url /v1/lessons 并且它由 LessonsController

中的 index() 方法处理

注意:似乎 Lumen 文档遗漏了要执行此操作,您需要 'namespace' => "App\Http\Controllers" 键值对才能使其工作。