我最近从CakePHP 1.2升级到CakePHP 1.3,现在我有一些代码在重定向循环中捕获用户。这是用户成功登录后决定点击链接来管理电子邮件。CakePHP从1.2升级到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...
}
这是为了将用户重定向到一个视图()方法,并只显示他们的电子邮件,而不是每个人的电子邮件。当我调试这个时发生了什么,重定向一直在index()方法中结束。
CakePHP中有什么新的东西我缺少?在控制器中使用名称“视图”作为动作是否是否定的?
*编辑*
好吧,我是有点为时过早这一职务。视图($ username)方法中的代码已到达。但是,事实是$ username没有被定义,并且我有一些客户端代码,如果它没有被定义,那么它们会被重定向回index()动作。
我没有检查原来的重定向,并且$ this-> Session-> read('username')填充了用户名,但它只是没有在view()的$ username参数中传递。
谢谢!
是否得到重定向?或跳过它?你的应用程序是否使用ACL?用户是否有权访问“查看”操作? –
Hey Moz,我用更多的信息更新了我的问题。要回答你的问题,它确实得到了重定向,我的应用程序确实使用ACL,并且用户有权访问“视图”操作。 – programmer
由于我不能回答我自己的问题,我会在这里回答它: 原来重定向签名从1.2更改为1.3: http://book.cakephp.org/view/1561/Migrating-from- CakePHP-1-2-to-012 库类>路由器 // CakePHP 1.2路 $ this-> redirect(array('controller'=>'emails','action'=>'view',' id'=> $ this-> Session-> read('username'))); ('controller'=>'emails','action'=>'view',$ this-> Session-> read('username'))); – programmer