在 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"
键值对才能使其工作。
来自 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"
键值对才能使其工作。