2010-01-06 63 views
1

好吧,假設我們有一個客戶類的註冊表,我們只需要詢問三個字段(姓名,電子郵件)和之後,當這個用戶第一次登錄時,我們要完成這個信息。我可以在symfony中爲同一個模型類做多個表單嗎?

首先,我們在lib/form/doctrine中有一個名爲'CustomerForm.class.php'的文件,這個文件是在命令行上自動生成的。在這個文件中,我們的「設置」僅3個字段和數據校驗,如果我們想用我們做這樣的事情:

$this->form = CustomerForm(); 

其次,我們創建手冊名爲「CustomerFormStep1.class.php」的另一種形式,我們可以設置爲驗證其他領域。但是,當我們做..

$this->form = CustomerFormStep1(); 

返回錯誤:Fatal error: Class 'CustomerFormStep1'找不到

有什麼不對?

謝謝。

回答

2

假設你已經有形式定義爲:

class CustomerFormStep1 extends sfForm 

或同級(sfFormDoctrine等),並命名爲正確的像你說的(CustomerFormStep1.class.php)和LIB /形式,那麼Symfony的應該隨便挑定義好了。您是否在創建並將其放置在正確的位置後清除了緩存? (symfony cc)。

0

你沒看過tutorial嗎?擴展形式在reh管理生成器中很好地描述,當然可以應用於任何情況。

1

以@richsage的指示創建新的CustomerFormStep1類。然後,在你的行爲中,你可以寫下類似的東西:

public function executeLogin(){ 
//before login 
$this->form = new CustomerForm(); 
} 

public function executeLoggedIn(){ 
$this->form = new CustomerFormStep1(); 
//other steps 
} 
相關問題