在Slim中缺少关闭

时间:2015-08-07 13:56:59

标签: php slim

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

Missing argument 2 for {closure}()

我用Google搜索过,似乎没有任何建议适用。这是整个申请:

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版。

1 个答案:

答案 0 :(得分:2)

你绝对不会使用slim 3,因为

  1. Slim 3不再有registerAutoloader();功能,和
  2. 班级名称从Slim()更改为App()和
  3. 在Slim 3中获取参数的正确方法是{id},而不是:id
  4. 您需要的是正确的回拨签名。

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