2014-09-24 48 views
0

我有一个包在这里面的routing.yml参数:Symfony2的:试图通过对URL

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

+0

更换由$ ID请求$请求 - > http://symfony.com/doc/current/book/page_creation.html – Gura 2014-09-24 08:15:15

回答

2

$ request-> query为您提供$ _GET参数(例如使用/ update-item?id = 5) 您的参数'id'不与_GET一起传递,但带路由。

你必须做到:

​​

或者

public function updateItemAction(Request $request, $id) 
{ 
    var_dump($id); 
} 
0

在Symfony的,只要你有你的路线图的参数,你可以添加一个变量在你的控制器动作相同的名称。

在你的情况,你应该做这样的事情:

public function updateItemAction($id, Request $request) 
{ 
    $repository = $this->getDoctrine() 
     ->getRepository('ProjectFrontendBundle:Item'); 

    var_dump($id); 
}