据我所知,根据 Symfony 文档 http://symfony.com/doc/current/book/forms.html#embedded-forms ,相关实体的形式可以相互嵌入。 ,并且可以根据http://symfony.com/doc/current/cookbook/form/form_collections.html处的文档通过集合字段类型嵌入相关实体表单的集合。
我正在寻找一种方法来“包含”基于另一个表单类型类的构建器中的一个实体的部分表单(基于同一实体)。例如,我可能有 ClientShortType 和 ClientLongType,并且在 ClientLongType 中,我想要 ClientShortType 中的所有字段以及我要添加的一些字段。 ClientShortType 和 ClientLongType 都将使用 Client 实体。
我对 Symfony 很陌生。也许我忽略了一些事情,但我无法找到一种方法来做到这一点。有人可以让我知道如何做,或者如果这不是解决这个问题的最佳方法,请给我指出正确的方向吗?谢谢!
最佳答案
您真正需要做的就是让长类型从短类型扩展。
class ClientShortType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name', 'text');
}
}
class ClientLongType extends ClientShortType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder,$options);
$builder->add('zodiacSign', 'text');
}
}
关于forms - 在 Symfony 中,将部分形式包含在另一个形式中,两者都基于同一实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25556548/