Slim 缺少闭合

Missing Closure in Slim

我正在尝试将 Slim 框架作为 REST api 的基础,并且在我尝试访问它时 运行 遇到以下问题:

Missing argument 2 for {closure}()

我用谷歌搜索了一下,none 的建议似乎适用。这是整个应用程序:

require("vendor/autoload.php");
use Slim\Slim as Slim;
\Slim\Slim::registerAutoloader();
include("validate.php");

$app= new Slim();
//
//      Route: GET /test/ID
//
$app->get("/test/:id",function($request,$response,$id) {  <--- ERROR LINE
                $status=accessAllowed("id",$request,$response);
                log_info("Status: $status\n");
        });
$app->run();

我刚刚开始学习 Slim,我假设这只是一个新手问题。任何指导将不胜感激。

我正在使用 Slim 的第 3 版(最新)。

您肯定没有使用 slim 3 因为

  1. Slim 3 不再有 registerAutoloader();功能,并且
  2. class 名称从 Slim() 更改为 App(),并且
  3. 在 Slim 3 中获取参数的正确方法是 {id},而不是 :id

您需要的是正确的回调签名。

$app->get("/test/:id",function($id) use ($app) {  <--- ERROR LINE
    $status=accessAllowed("id",$app->request,$app->response);
    print "Status: $status\n";
});