我从这个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