我正在使用嵌入式表单来制作注册表单,其中包含多个相关实体的字段。正如我在此处的问题中向我解释的那样:
Symfony2 表单中的数据对象与需要填写的内容不完全匹配 https://stackoverflow.com/questions/7648117/symfony2-form-where-the-data-objects-doesnt-match-exactly-what-needs-to-be-fille/7650072#7650072
这很好用。但是假设我想重新使用我嵌入的表单之一,但保留一些字段。
那么我的选择是什么?
- 我是否要创建一个额外的 formType 来扩展原始 formType?
- 我是否决定在视图中省略某些字段?
但在我看来,这并不像是一个视图决定。对我来说,针对每个不同的用例进行扩展感觉像是一种糟糕的重用实践。
其他人是如何解决这个问题的?
Thanks,
Dieter
我认为最好的解决方案是创建一个基本的抽象类型并让您的类型扩展它。这是一个简短的例子:
namespace Acme\Bundle\DemoBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
abstract FooBaseType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
// Add all fields common for your other types.
}
}
现在您可以扩展它并包含缺少的字段
namespace Acme\Bundle\DemoBundle\Form\Type;
class ExampleType extends FooBaseType
{
public function buildForm(FormBuilder $builder, array $options)
{
parent::buildForm($builder, $options);
// Your missing fields
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)