forms - 在 Symfony 中,将部分形式包含在另一个形式中,两者都基于同一实体

标签 forms symfony

据我所知,根据 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/

相关文章:

javascript - 表单将 <select> 提交为未定义

php - 在 php 中执行此 block 的更好方法

mongodb - Gedmo Timestampable 在使用 JMS Serializer 反序列化时总是更新引用

validation - 我如何根据 Symfony2 中表单本身的某些字段仅验证某些验证组

Symfony2 异常响应。用 200 替换 404 状态码

jquery - 当用户开始在 jQuery 中填写表单时启动计时器

javascript - 代码可以正常工作,但不能在网页上工作

forms - FOSRestBundle 将 json 数据发布到表单不起作用

php - 在使用 Symfony2 和 FOSRestBundle 制作的 REST api 中使用 Accept header 的正确方法

php - 为什么 Symfony 分析器在使用 Memcached 分析器存储时抛出 404?