2017-08-02 30 views
1

我從這個book學習ZF3,我碰到這個傳來:

在我的控制,我可以得到$ _GET [ 'VAR_NAME']在ZF3這樣的:

$request = $this->getRequest(); 
$request->getQuery('var_name'); 

或者這方式:

$this->params()->fromQuery('var_name'); 

兩者有什麼區別? (改寫問題:爲什麼有兩種方法可以做同樣的事情?)。在特定情況下,是否比另一個更受歡迎?

回答

3

數據是請求的一部分,所以這就是它在請求對象中的原因。 params控制器插件(你的第二個例子)提供了一個更簡潔的方式來訪問這些數據,所以這就是你應該用來從控制器訪問數據的東西。

+0

在我的第一個代碼示例,有沒有其他地方,我可以從控制器一邊用這個? – evilReiko

2
$this->params()->fromQuery('var_name'); 

這裏$this->params()是控制器插件,您只能從控制器使用它。

$request = $this->getRequest(); 
$request->getQuery('var_name'); 

您可以從任何類的請求,作爲如下─

$request = new Request(); 
+1

要訪問任何類的請求,你應該使用'ServiceManager'注入它:'$ container-> get('Request')'。 – gsc

相關問題