Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework Zend框架:从更高效的控制器插件重定向_Zend Framework - Fatal编程技术网

Zend framework Zend框架:从更高效的控制器插件重定向

Zend framework Zend框架:从更高效的控制器插件重定向,zend-framework,Zend Framework,我看到了从控制器插件重定向的两种方法。。。我不知道哪一个更有效。我想知道在第二种方法中,它可能会因为响应被创建而变慢?第一种方法tho会发生什么?它会立即重定向吗 $request->setModuleName('default') ->setControllerName('search') ->setActionName('form') ->setDispatched(false); 或 第一种方法是应用程序重定向:您定

我看到了从控制器插件重定向的两种方法。。。我不知道哪一个更有效。我想知道在第二种方法中,它可能会因为响应被创建而变慢?第一种方法tho会发生什么?它会立即重定向吗

$request->setModuleName('default')
        ->setControllerName('search')
        ->setActionName('form')
        ->setDispatched(false);


第一种方法是应用程序重定向:您定义请求的操作在另一个控制器内,因此使用相同的http请求来执行操作

第二种方法是http重定向:http响应将具有http位置重定向,因此客户端将触发第二个http请求以获得结果

第一种肯定是最有效的


PS:您可以调用控制器的forward方法来分派另一个操作。

$this->\u redirect('url');当我在Zend_Controller_Action类中时,应该是fastes(标题重定向),对吗?yepp仅在Controllers中工作如果您还想更改显示的URL怎么办?我在控制器中插件是否可用?对于请求对象,我是否可以添加一个响应代码,例如HTTP 401,以满足登录要求@Alister Bulman:如果我认为
\u重定向('/page1')
?@AlisterBulman:第二个选项(http重定向)将更改URL@JiewMeng:Forward helper在控制器插件中不可用,仅在控制器本身中可用。您可以通过调用
$this->getResponse()->setHttpResponseCode()
方法设置HTTP响应代码,并通过调用
$this->getResponse()->setHeader()方法修改头。
$this->_response->setRedirect('redirecturl');