Lumen route groups error: "Undefined variable: app"

Lumen route groups error: "Undefined variable: app"

我刚刚使用这个非常简单的路由文件创建了一个新的 lumen 应用程序:

<?php

$app->get('/', function () {
  return 'Hello World';
});


$app->group(['prefix' => '/admin'], function () {

  $app->get('/user', function () {
    return 'Admin user';
  });

});

我得到这个错误:

lumen.ERROR: exception 'ErrorException' with message 'Undefined variable: app' in /path/to/my/lumen/project/app/Http/routes.php:10

怎么了?

请注意,如果我删除路由组,一切都会很好。

问题是您在 group 调用中使用的闭包:

$app->group(['prefix' => '/admin'], function () {

        $app->get('/user', function () {
        return 'Admin - user';
    });

});

您必须将其传递给 $app:

$app->group(['prefix' => '/admin'], function () use ($app) {

        $app->get('/user', function () {
        return 'Admin - user';
    });

});

laravel 网站上的 lumen 文档包含错误,但 github 上的文档已修复。事实证明,应用程序实例作为参数传递给回调,因此您可以取消那个 use ($app) 位,而是这样写:

$app->group(['prefix' => '/admin'], function ($app) {

        $app->get('/user', function () {
        return 'Admin - user';
    });
});