我是cakephp的新手,並試圖用它編寫一個簡單的應用程序,但是我遇到了一些表單驗證問題。如何在CakePHP表單驗證失敗時保存URL參數
我有一個名爲「Person」的模型,它有許多「PersonSkill」對象。要添加「PersonSkill」一個人,我已經將它設置成這樣調用一個網址:
http://localhost/myapp/person_skills/add/person_id:3
我一直在通過爲person_id,因爲我要顯示我們是人的名字添加技能。
我的問題是,如果驗證失敗,person_id參數沒有持久化到下一個請求,所以不會顯示該人員的姓名。
控制器上的添加方法如下:
function add() {
if (!empty($this->data)) {
if ($this->PersonSkill->save($this->data)) {
$this->Session->setFlash('Your person has been saved.');
$this->redirect(array('action' => 'view', 'id' => $this->PersonSkill->id));
}
} else {
$this->Person->id = $this->params['named']['person_id'];
$this->set('person', $this->Person->read());
}
}
在我person_skill add.ctp我設置的隱藏字段,其保持爲person_id,如:
echo $form->input('person_id', array('type'=>'hidden','value'=>$person['Person']['id']));
是否有辦法在表單驗證失敗時堅持person_id url參數,還是有更好的方法來完成我完全缺少的操作?
任何意見將不勝感激。
謝謝 - 這正是我所需要的! – 2010-03-18 09:33:53
即使整潔,如果它們已經存在,它也不會重複參數。優秀的解決方 – Cruachan 2011-08-30 20:25:46