菲利克斯,我做它「未設置」的變化,它工作正常......但我有一個問題。我嘗試在相同的操作上進行更新。我的代碼看起來像那樣。
在行動
public function executeStepOne(sfWebRequest $request){
$this->form = new CustomerFormStepOne();
if ($request->isMethod(sfRequest::POST)){
$this->processRegisterForm($request, $this->form,'paso2');
}else{
$this->customer = Doctrine::getTable('Customer')-> find(1);
$this->forward404Unless($this->customer);
}
}
其中processRegisterForm代碼:
protected function processRegisterForm(sfWebRequest $request, sfForm $form,$route)
{
$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
if ($form->isValid())
{
$customer = $form->save();
$this->redirect('customer/'.$route);
}
}
,如果我嘗試這樣做,他們將返回我一個錯誤 '的主鍵複製'。
您應該在下次編輯您的問題,而不是回答自己。無論如何:這是您只顯示必填字段的第一個步驟,對不對?你的模板是怎樣的? 'Doctrine :: getTable('Customer') - > find(1)'對我來說看起來不對,因爲你總是加載ID爲1的客戶。 – 2010-01-07 16:15:18
對不起菲利克斯,下一次我將編輯我的問題;) 是的,我知道只在代碼等於1的地方加載客戶(這個代碼是測試和測試結果,測試結果肯定是不正確的)。不,這個表單只顯示兩個字段(不是第一種形式),在我的模板中,我只有兩個字段和showHiddenFields()語句。我看到代碼生成,並有客戶代碼字段的值,但問題是,當他們驗證:他們確實正確,但(通過驗證),但打印我錯誤'primary_key重複'或類似...非常感謝菲利克斯。 – nebur85 2010-01-08 11:13:53
看到我編輯的答案... – 2010-01-08 12:02:10