2010-01-06 109 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 
} 
相关问题