这两个词之间有什么真正的区别吗?
$this->_redirect('controller/action');
并且。
$request->setControllerName('controller')
->setActionName('action');
我的猜测是第一个可能在幕后使用第二个。有人知道吗?
这两个词之间有什么真正的区别吗?
$this->_redirect('controller/action');
$request->setControllerName('controller')
->setActionName('action');
我的猜测是第一个可能在幕后使用第二个。有人知道吗?
final protected function _forward($action, $controller = null, $module = null, array $params = null)
{
$request = $this->getRequest();
if (null !== $params) {
$request->setParams($params);
}
if (null !== $controller) {
$request->setControllerName($controller);
// Module should only be reset if controller has been specified
if (null !== $module) {
$request->setModuleName($module);
}
}
$request->setActionName($action)
->setDispatched(false);
}
http://framework.zend.com/manual/en/zend.controller.dispatcher.html
区别在于Redirector助手只发送HTTP重定向标头,而更改请求参数需要运行dispatcher(如果已经运行,则再次运行)才能进行成功的重定向,因此在何处调用该方法非常重要。
似乎最大的区别是第一个至少会发出两个HTTP请求(一个用于查找重定向,第二个用于执行它),而另一个仅在调度过程之前调用时执行一次(如果我错了,请纠正我)。