CakePHP从1.2升级到1.3现在提供重定向循环

时间:2011-12-01 16:00:37

标签: php cakephp cakephp-1.3

我最近从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-&gt;会话 - &gt;读取('用户名')填充了用户名,但它没有在view()的$ username参数中传递。 / p>

谢谢!

1 个答案:

答案 0 :(得分:0)

事实证明重定向签名从1.2更改为1.3:

http://book.cakephp.org/view/1561/Migrating-from-CakePHP-1-2-to-1-3 图书馆课程&gt;路由器

// 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')));