2017-08-02 32 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

相关问题