![](/img/trans.png)
[英]An upgrade from CakePHP 1.2 to 1.3 broke my routes, although they should be 1.3 compatible
[英]CakePHP upgrade from 1.2 to 1.3 is now giving redirect loops
我最近從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”用作控制器中的動作是否可以?
*編輯*
好的,我這篇文章還為時過早。 已達到view($ username)方法中的代碼。 但是,問題是$ username尚未定義,我有一些客戶端代碼,如果未定義,它們會將其重定向回到index()操作。
我確實檢查了原始重定向,並在$ this-> Session-> read('username')中填充了用戶名,但只是未在view()的$ username參數中傳遞該用戶名。
謝謝!
事實證明,重定向簽名從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')));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.