1
有沒有推薦的方法來選擇如何將數據提供給控制器?Symfony2最佳實踐:路由佔位符與查詢參數
我經常不得不決定,如果我想使用的路由佔位符,如:
/**
* @Route("/hello/{name}", name="hello")
*/
public function indexAction($name)
{
return new Response('<html><body>Hello '.$name.'!</body></html>');
}
用法:/hallo/Thorsten
或者使用查詢參數($ _ GET):
/**
* @Route("/hello")
*/
public function indexAction()
{
$request = Request::createFromGlobals();
$name = $request->get('name');
return new Response('<html><body>Hello '.$name.'!</body></html>');
}
用法:/hallo?name=Thorsten
見http://stackoverflow.com/a/4028874/711206 – Federkun
側面的問題:你爲什麼要建立內部的請求對象控制器?您通常應該使用'indexAction(Request $ request,...)',其中symfony將注入當前請求。 – Yoshi
這兩者之間的區別在於,您必須檢查第二個示例中控制器內的值是否存在等。首先,你必須確保在生成url /路徑時擁有所有參數。我自己更喜歡第一個,因爲它更容易不會迷失在路線中.. 也可以爲一個Action創建多條路線,只需要不同的參數 – Koalabaerchen