我可以在symfony中为同一个模型类做多个表单吗?

时间:2010-01-06 09:01:35

标签: forms symfony1 doctrine

好吧,想象一下我们有一个Customer类的注册表单,我们只询问三个字段(姓名,姓氏,电子邮件),之后,当这个用户第一次登录时,我们想要完成这些信息。

首先,我们在lib / form / doctrine中有一个名为'CustomerForm.class.php'的文件,它在命令行上自动生成。在这个文件中,我们只设置了3个字段和验证器,如果我们想要使用,我们会做类似的事情:

$this->form = CustomerForm();

其次,我们创建了另一个名为'CustomerFormStep1.class.php'的手册,我们可以设置它来验证其他字段。但是,当我们这样做..

$this->form = CustomerFormStep1();

它返回错误:找不到Fatal error: Class 'CustomerFormStep1'

有什么问题?

感谢。

3 个答案:

答案 0 :(得分:2)

假设您将表单定义为:

class CustomerFormStep1 extends sfForm

或类似的(sfFormDoctrine等),并且像你说的那样正确地命名(CustomerFormStep1.class.php)并且在lib / form中,那么Symfony应该只是选择定义。在创建并将其放置在正确的位置后,您是否清除了缓存? (symfony cc)。

答案 1 :(得分:1)

在@richsage指示下创建新的CustomerFormStep1类。然后,在你的行动中你可以写出类似的东西:

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

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

答案 2 :(得分:0)

你没看过tutorial吗?使用reh admin generator在上下文中完美地描述了扩展表单,当然可以应用于任何情况。