2011-05-19 52 views
0

您好,感謝您的時間! 嘗試實施表單嚮導時遇到了一些問題。 使用xdebug顯示所有提交的數據都丟失,意思是:
$ this-> data,$ _POST和$ params ['data']/['form']全部爲空。 看起來,蛋糕正在做某種重定向/調度,並且操作被調用兩次。當我在beforeFilter()方法中設置斷點時,我可以看到所有數據都正確填充。 在其他討論中有一些建議,這可能是由佈局中的無效鏈接引起的,但使用空白布局不會改變任何內容。 我也刪除了身份驗證組件,RequestHandler,Helpers,看看是否有這些事情發生......什麼都沒有。 問題是,我對Cake很新,沒有更多的想法在哪裏看。 目前即時得到這樣的警告:表格嚮導正在丟失我的數據

Warning (512): Step validation: daten is not a valid step. [ROOT/plugins/wizard/controllers/components/wizard.php, line 271] 
Code | Context 

return $this->controller->autoRender ? $this->controller->render($this->_currentStep) : true; 
} else { 
trigger_error(sprintf(__('Step validation: %s is not a valid step.', true), $step), E_USER_WARNING); 

$step = "daten" 

WizardComponent::process() - ROOT/plugins/wizard/controllers/components/wizard.php, line 271 
SignupsController::wizard() - ROOT/plugins/bookings/controllers/signups_controller.php, line 18 
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 204 
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 171 
[main] - ROOT/webroot/index.php, line 83 

不認爲幫助很大,導致$步陣也會丟失。 任何想法深表感謝! :)

回答

0

問題在於會話已過期,系統一直跟蹤進度和數據,導致信息丟失。將您的會話設置爲在覈心配置中的安全首選項中更長。儘管如此,這仍然不能阻止錯誤。到固定的替換:

trigger_error(sprintf(__('Step validation: %s is not a valid step.', true), $step), E_USER_WARNING); 

到:

$this->reset(); 

這將用戶發送回形式嚮導的第一部分。您將失去所有用戶數據,但會話發生時首先會失效,或者如果有人試圖跳轉到尚未使用表單訪問的表單,它也會重置。這可能是一個很好的安全措施,或者只是簡單的煩人。

無論如何,這是我的解決方案,可能會有更好的。

+0

感謝您的回答布魯斯! 由於我不知道如何自己解決問題,我決定寫我自己的表單助手,但希望它能幫助別人。 – HerrKuchen 2012-01-29 13:40:23