首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cakephp-3.0可以立即重定向吗?

Cakephp-3.0可以立即重定向吗?
EN

Stack Overflow用户
提问于 2015-04-07 00:33:16
回答 3查看 1.8K关注 0票数 3

因此,对controller进行了更改::重定向,现在它在调用控制器操作后触发。因此,如果您想在触发逻辑之前重定向某个人(例如,没有登录),那就不可能了。有人知道如何模拟以前的2.X行为吗?在这种情况下,调用Controller::重定向会立即停止一切并重定向?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-07 07:27:35

关键是return $this->redirect()调用,该调用将立即从控制器返回一个响应对象,这将使调度人员理解您希望立即终止请求:

代码语言:javascript
复制
return $this->redirect($url);

可以从控制器操作本身或控制器中的任何回调(beforeFilterbeforeRenderafterFilter .)执行重定向。还允许从任何组件回调中返回重定向值。

票数 5
EN

Stack Overflow用户

发布于 2015-04-07 05:05:17

如果用户没有登录,有三种可能的重定向方法。我做了我的应用程序之一。首先是使用控制器的beforeFilter()。你可以像这样

代码语言:javascript
复制
public function beforeFilter(){
 parent::beforeFilter();
 if(empty($this->logged_in)){
   //your redirect code or your logic
 }
}

当您的控制器操作被调用时,它将第一次执行。其次,可以创建类的构造函数。它也在一开始执行。

代码语言:javascript
复制
public function __construct( $request = null, $response = null ) {
    parent::__construct( $request = null, $response = null );
    //Your redirect code if user not logged in
}

您可以用AppController beforeFilter()编写代码;但是,如果只想防止非登录用户访问某些函数,则应该使用Auth组件允许函数。语法是

代码语言:javascript
复制
$this->Auth->allow(array('action_name_1','action_name2'));

将此允许函数粘贴到beforeFilter函数中。通过使用上述技巧,您可以防止用户访问您的逻辑,如果他/她没有登录。

票数 0
EN

Stack Overflow用户

发布于 2020-03-04 15:58:36

我只是遇到了同样的问题。最后,我得到了好的老header()函数和die()

代码语言:javascript
复制
header('Location: http://example.com/whatever');  
die;  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29481810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档