2012-09-12 105 views
0

我在我的應用程序中遇到了一個奇怪的問題。我有一些需要編輯的數據,當我試圖保存數據時,會發生奇怪的事情。在cake1.3中保存表單數據

如果我在beforeFilter()的末尾輸入die('test');,我會在屏幕上看到「測試」,但如果我將它放在動作的開始處,我將被重定向到登錄頁面。

如果我通過一些specyfic數據

$this->data['Movie']['title']) 

如果我通過別的

$this->data['Movie']['genere'] 

一切正常,這是怎麼回事而已。

我該如何調試? beforFilter和操作之間發生了什麼?

+0

你可以在beforefilter var_dump($ this-> data)嗎? –

+0

之後可能會發生 - 不要忘記beforeRender()。此外,請檢查您的視圖是否通過requestAction()拉取數據,這可能需要身份驗證。 – RichardAtHome

+0

顯示完整beforFilter行動碼... –

回答

1

如果您的Auth組件處於活動狀態,請檢查您的beforeFilter()功能是否允許該用戶執行此操作。

例如:

function beforeFilter() { 
    $this->Auth->allow(array('add', 'edit',)); // for example 
} 

在您allow()方法包括所需的方法的名稱。

+0

顯示和保存表單是在同一個動作中,顯示工作正常,所以它不應該是Auth-> allow()...此外,我已拒絕('*');.我正在使用Acl,並且以ACO'contorllers'中的所有用戶身份登錄, – Vexator