symfony2:尝试在URL上传递参数
我将这个routing.yml放在一个包中:symfony2:尝试在URL上传递参数,symfony,Symfony,我将这个routing.yml放在一个包中: project_backend_update_item: path: /update-item/{id} defaults: { _controller: ProjectBackendBundle:Default:updateItem } 在我的控制器中: public function updateItemAction(Request $request) { $repository = $this->get
project_backend_update_item:
path: /update-item/{id}
defaults: { _controller: ProjectBackendBundle:Default:updateItem }
在我的控制器中:
public function updateItemAction(Request $request)
{
$repository = $this->getDoctrine()
->getRepository('ProjectFrontendBundle:Item');
var_dump($request->query->get('id'));
当我请求:“app_dev.php/update item/1”时,我得到NULL。为什么?我希望是“1”。$request->query为您提供$\u GET参数(例如使用/update item?id=5) 您的参数“id”不是通过_GET传递的,而是通过路由传递的 你必须做到:
public function updateItemAction($id)
{
var_dump($id);
}
或
在Symfony中,只要路由模式中有参数,就可以在控制器操作中添加同名变量 在您的情况下,您应该这样做:
public function updateItemAction($id, Request $request)
{
$repository = $this->getDoctrine()
->getRepository('ProjectFrontendBundle:Item');
var_dump($id);
}
将请求$Request替换为$id-->
public function updateItemAction($id, Request $request)
{
$repository = $this->getDoctrine()
->getRepository('ProjectFrontendBundle:Item');
var_dump($id);
}