【问题标题】:CakePHP upgrade from 1.2 to 1.3 is now giving redirect loopsCakePHP 从 1.2 升级到 1.3 现在提供重定向循环
【发布时间】:2011-12-01 16:00:37
【问题描述】:

我最近从 CakePHP 1.2 升级到 CakePHP 1.3,现在我有一些代码让用户陷入重定向循环。这是在用户成功登录并决定单击链接来管理电子邮件之后。

我在控制器中有一些代码,其中 index() 方法将检查当前用户是否是管理员。如果用户不是管理员,它将执行以下操作:

function index()
{
    if ($this->Session->read('is_admin') < 1) {
        $this->redirect(array('controller' => 'emails', 'action' => 'view', 'id' => $this->Session->read('username')));
    }

    //...more code...
}

这旨在将用户重定向到 view() 方法并仅显示他们的电子邮件,而不是每个人的电子邮件。当我调试时发生了什么是重定向一直在 index() 方法中结束。

CakePHP 中是否有我遗漏的新内容?使用名称“视图”作为控制器中的操作是禁忌吗?

* 编辑 *

好的,我写这篇文章有点为时过早。正在访问 view($username) 方法中的代码。但问题是 $username 未定义,如果未定义,我有一些客户端代码然后重定向回 index() 操作。

我确实检查了原始重定向,并且 $this->Session->read('username') 填充了用户名,但它只是没有在 view() 的 $username 参数中传递。

谢谢!

【问题讨论】:

  • 它是否到达重定向?或跳过它?您的应用程序是否使用 ACL?用户是否有权访问“查看”操作?
  • 嘿 Moz,我用更多信息更新了我的问题。要回答您的问题,它确实会进行重定向,并且我的应用确实使用 ACL,并且用户可以访问“查看”操作。
  • 由于我还不能回答我自己的问题,所以我会在这里回答:原来重定向签名从 1.2 更改为 1.3:book.cakephp.org/view/1561/Migrating-from-CakePHP-1-2-to-1-3 Library Classes > Router // CakePHP 1.2 way $ this->redirect(array('controller' => 'emails', 'action' => 'view', 'id' => $this->Session->read('username'))); // CakePHP 1.3 方式 $this->redirect(array('controller' => 'emails', 'action' => 'view', $this->Session->read('username')));

标签: php cakephp cakephp-1.3


【解决方案1】:

原来重定向签名从 1.2 更改为 1.3:

http://book.cakephp.org/view/1561/Migrating-from-CakePHP-1-2-to-1-3 库类 > 路由器

// CakePHP 1.2 way
$this->redirect(array('controller' => 'emails', 'action' => 'view', 'id' => $this->Session->read('username')));

// CakePHP 1.3 way
$this->redirect(array('controller' => 'emails', 'action' => 'view', $this->Session->read('username')));

【讨论】:

    猜你喜欢
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2022-11-17
    • 1970-01-01
    • 2011-11-09
    • 2014-03-27
    • 2010-09-19
    相关资源
    最近更新 更多