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