Silex getBaseUrl 和 getBasePath 为空
Silex getBaseUrl and getBasePath empty
我对 Silex 和学习有点陌生。在将一行插入数据库后,我试图 return 我的一个路由控制器中的基础 url 到 return 新路径。不管我尝试什么,它都是 returning 一个空字符串。这是该功能的一部分:
$app->match('/item', function(Request $request) use ($app) {
$method = $request->getMethod();
switch ($method) {
//POST
case 'POST': //insert
$data = array(
'item' => $request->get('item'),
'description' => $request->get('description'),
'quantityOnHand' => $request->get('quantityOnHand'),
'reorderPoint' => $request->get('reorderPoint'),
'supplier_id' => $request->get('supplier_id')
); //before to get supplier_id???? Or do it in ios
$app['db']->insert('inventory', $data);
$newId = (int) $app['db']->lastInsertId(); //cast int
$location = $request->getBaseUrl().'/inventory/id/'.$newId;
return $app->json(array('status' => 201, 'id'=>$newId, 'location' =>$location), 201);
break;
}
}
$location
变量中的所有内容都正常工作,但基本路径除外。我错过了什么吗?我正在将 $request
注入控制器。当我 运行 这个它 returns /inventory/item/101
的位置,没有我的基地 url.
根据评论,OP 正在寻找的似乎是主机名,而不是基础 url,因此应该使用 getHost
方法。
不过请记住,要轻松生成 URL,您应该使用 UrlGenerator instead of crafting it manually. Silex has a default provider for this service。
我对 Silex 和学习有点陌生。在将一行插入数据库后,我试图 return 我的一个路由控制器中的基础 url 到 return 新路径。不管我尝试什么,它都是 returning 一个空字符串。这是该功能的一部分:
$app->match('/item', function(Request $request) use ($app) {
$method = $request->getMethod();
switch ($method) {
//POST
case 'POST': //insert
$data = array(
'item' => $request->get('item'),
'description' => $request->get('description'),
'quantityOnHand' => $request->get('quantityOnHand'),
'reorderPoint' => $request->get('reorderPoint'),
'supplier_id' => $request->get('supplier_id')
); //before to get supplier_id???? Or do it in ios
$app['db']->insert('inventory', $data);
$newId = (int) $app['db']->lastInsertId(); //cast int
$location = $request->getBaseUrl().'/inventory/id/'.$newId;
return $app->json(array('status' => 201, 'id'=>$newId, 'location' =>$location), 201);
break;
}
}
$location
变量中的所有内容都正常工作,但基本路径除外。我错过了什么吗?我正在将 $request
注入控制器。当我 运行 这个它 returns /inventory/item/101
的位置,没有我的基地 url.
根据评论,OP 正在寻找的似乎是主机名,而不是基础 url,因此应该使用 getHost
方法。
不过请记住,要轻松生成 URL,您应该使用 UrlGenerator instead of crafting it manually. Silex has a default provider for this service。