好吧,想象一下我们有一个Customer类的注册表单,我们只询问三个字段(姓名,姓氏,电子邮件),之后,当这个用户第一次登录时,我们想要完成这些信息。
首先,我们在lib / form / doctrine中有一个名为'CustomerForm.class.php'的文件,它在命令行上自动生成。在这个文件中,我们只设置了3个字段和验证器,如果我们想要使用,我们会做类似的事情:
$this->form = CustomerForm();
其次,我们创建了另一个名为'CustomerFormStep1.class.php'的手册,我们可以设置它来验证其他字段。但是,当我们这样做..
$this->form = CustomerFormStep1();
它返回错误:找不到Fatal error: Class 'CustomerFormStep1'
有什么问题?
感谢。
答案 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在上下文中完美地描述了扩展表单,当然可以应用于任何情况。