我可以在 Symfony 中为同一个模型类创建多个表单吗?

问题描述 投票:0回答:3

假设我们有一个客户类的注册表单,我们只询问三个字段(姓名、电子邮件),之后,当该用户第一次登录时,我们想要填写此信息。

首先,我们在 lib/form/doctrine 中有一个名为“CustomerForm.class.php”的文件,该文件是在命令行上自动生成的。在此文件中,我们仅“设置”了 3 个字段和验证器,如果我们想使用,我们会执行类似的操作:

$this->form = CustomerForm();

其次,我们手动创建另一个名为“CustomerFormStep1.class.php”的表单,我们可以在其中设置以验证其他字段。但是当我们这样做时..

$this->form = CustomerFormStep1();

它返回错误:

Fatal error: Class 'CustomerFormStep1'
未找到

出了什么问题?

谢谢。

forms symfony1 doctrine
3个回答
2
投票

假设您的表单定义为:

class CustomerFormStep1 extends sfForm

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

symfony cc
).


1
投票

按照 @richsage 的指示创建新的 CustomerFormStep1 类。然后,在你的动作中你可以写一些类似的东西:

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

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

0
投票

你还没读过教程吗?扩展表单在 reh admin 生成器的上下文中得到了完美的描述,当然可以应用于任何情况。

© www.soinside.com 2019 - 2024. All rights reserved.