我正在创建一个简单的网站,用户可以在其中注册,然后登录并添加文本文章。如果不登录,访问者将拥有访客角色,并且只能查看文章。我在 Zend 框架 1 中做这个练习,因为我刚刚开始学习 Zend。我将为登录创建一个控制器 AuthController,但我想知道如何从 IndexController 中的 indexAction 重定向到该控制器中的登录操作。另外,如何使用自定义插件来实现这种访问控制?我该如何调用它?
问问题
29893 次
4 回答
17
jalpesh 和 Hasina 的简短回答都是正确的。
Jalpesh 的示例将是对 action helper 的速记调用redirector()
,它默认为gotoSimple()
重定向方法,但他似乎将参数反向。
//corrected
$this->_helper->redirector($action, $controller);
将更详细地称为:
$this->getHelper('Redirector')->gotoSimple($action, $controller = null, $module = null, array $params = array());
有几种方法可以使用Redirector 操作助手,这只是一个非常常见的示例。
Hasina 提供的示例是对控制器实用程序方法_redirect()
的调用,这是一个比帮助程序更有限的代码,Redirector
但仍然非常有用。
//only accepts a url string as the first arg
//deprecated as of ZF 1.7 still in documentation
$this->_redirect($url, array $options = array());
显然,从 ZF 1.7 开始,文档中没有一种新方法(在 docblock 中找到此位),这是首选:
//valid as of ZF 1.7, not in documentation
$this->redirect($url, array $options = array());
这两种实用程序方法都是代理:
Zend_Controller_Action_Helper_Redirector::gotoUrl()
希望这可以帮助
于 2013-05-30T11:15:27.097 回答
11
您可以使用以下方式在操作方法内重定向:
$this->redirect('/module/controller/action/');
于 2013-05-30T10:08:01.513 回答
2
如果您正在使用路线,您可以使用$this->getHelper('Redirector')->setGotoRoute(array(), 'routeName');
于 2013-11-30T13:08:25.390 回答
0
我认为这会对你有所帮助
$this->_helper->redirector('controller','action');
通过这种方式,您可以调用另一个控制器。
于 2013-05-30T10:10:24.577 回答