从 Slim 路由捕获的变量未定义
Captured variable from Slim route is undefined
我有以下精简路线,但由于某种原因无法识别 $cid
变量。 $cid
var 应该从下面代码的第一行开始初始化
:cid
然后再往下用在响应数组的路径变量中
"path" => "/customers/".$cid."/vehicles/".$vehicle_id
这是完整的代码
$app->put('/customers/:cid/vehicles/?', function() use($app){
$body = $app->request->getBody();
$ds = getDataSource();
$_PUT = array();
parse_str($body, $_PUT);
$vehicle_id = $ds->addVehicle(
$_PUT["owner"],
$_PUT["year"],
$_PUT["make"],
$_PUT["model"],
$_PUT["plates"],
$_PUT["comments"] );
if( $vehicle_id != null ){
$response = array(
"id" => $vehicle_id,
"path" => "/customers/".$cid."/vehicles/".$vehicle_id
);
respond(200, $response);
} else {
$response = array(
"Message"=> "Unable to add vehicle"
);
respond(400, $response);
}
});
所以我有点困惑为什么我得到:
Slim Application Error
The application could not run because of the following error:
Type: ErrorException
Code: 8
Message: Undefined variable: cid
有谁知道为什么会这样,或者如何解决?
嗯,这不是我最辉煌的时刻。
$app->put('/customers/:cid/vehicles/?', function() use($app){
应该是
$app->put('/customers/:cid/vehicles/?', function(
$cid) use($app){
必须将 var 传递给闭包。
笨蛋。
我有以下精简路线,但由于某种原因无法识别 $cid
变量。 $cid
var 应该从下面代码的第一行开始初始化
:cid
然后再往下用在响应数组的路径变量中
"path" => "/customers/".$cid."/vehicles/".$vehicle_id
这是完整的代码
$app->put('/customers/:cid/vehicles/?', function() use($app){
$body = $app->request->getBody();
$ds = getDataSource();
$_PUT = array();
parse_str($body, $_PUT);
$vehicle_id = $ds->addVehicle(
$_PUT["owner"],
$_PUT["year"],
$_PUT["make"],
$_PUT["model"],
$_PUT["plates"],
$_PUT["comments"] );
if( $vehicle_id != null ){
$response = array(
"id" => $vehicle_id,
"path" => "/customers/".$cid."/vehicles/".$vehicle_id
);
respond(200, $response);
} else {
$response = array(
"Message"=> "Unable to add vehicle"
);
respond(400, $response);
}
});
所以我有点困惑为什么我得到:
Slim Application Error
The application could not run because of the following error:
Type: ErrorException
Code: 8
Message: Undefined variable: cid
有谁知道为什么会这样,或者如何解决?
嗯,这不是我最辉煌的时刻。
$app->put('/customers/:cid/vehicles/?', function() use($app){
应该是
$app->put('/customers/:cid/vehicles/?', function(
$cid) use($app){
必须将 var 传递给闭包。
笨蛋。