我從這個book學習ZF3,我碰到這個傳來:
在我的控制,我可以得到$ _GET [ 'VAR_NAME']在ZF3這樣的:
$request = $this->getRequest();
$request->getQuery('var_name');
或者這方式:
$this->params()->fromQuery('var_name');
兩者有什麼區別? (改寫問題:爲什麼有兩種方法可以做同樣的事情?)。在特定情況下,是否比另一個更受歡迎?
我從這個book學習ZF3,我碰到這個傳來:
在我的控制,我可以得到$ _GET [ 'VAR_NAME']在ZF3這樣的:
$request = $this->getRequest();
$request->getQuery('var_name');
或者這方式:
$this->params()->fromQuery('var_name');
兩者有什麼區別? (改寫問題:爲什麼有兩種方法可以做同樣的事情?)。在特定情況下,是否比另一個更受歡迎?
數據是請求的一部分,所以這就是它在請求對象中的原因。 params控制器插件(你的第二個例子)提供了一個更簡潔的方式來訪問這些數據,所以這就是你應該用來從控制器訪問數據的東西。
$this->params()->fromQuery('var_name');
這裏$this->params()
是控制器插件,您只能從控制器使用它。
但
$request = $this->getRequest();
$request->getQuery('var_name');
您可以從任何類的請求,作爲如下─
$request = new Request();
要訪問任何類的請求,你應該使用'ServiceManager'注入它:'$ container-> get('Request')'。 – gsc
在我的第一個代碼示例,有沒有其他地方,我可以從控制器一邊用這個? – evilReiko