【问题标题】:How to add additional non-entity fields to entity form in Symfony2如何在 Symfony2 中的实体表单中添加额外的非实体字段
【发布时间】:2012-09-05 06:01:59
【问题描述】:

我已经用 Entity 的一个元素创建了表单:

$promo = new Promo();

$form = $this->createFormBuilder($promo)
        ->add('code', 'text')
        ->getForm();

我想添加文件元素(实体中不存在此字段)。当我这样做时:

$form = $this->createFormBuilder($promo)
        ->add('code', 'text')
        ->add('image', 'file')
        ->getForm();

我有一个错误:属性“image”和方法“getImage()”都没有。如何添加此字段?

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    使用mapped:

    $form = $this->createFormBuilder($promo)
        ->add('code', 'text')
        ->add('image', 'file', array(
                    "mapped" => false,
                ))
        ->getForm();
    

    在旧的 Symfony 版本(2.0 和更早版本)中,使用property_path

    $form = $this->createFormBuilder($promo)
        ->add('code', 'text')
        ->add('image', 'file', array(
                    "property_path" => false,
                ))
        ->getForm();
    

    “property_path”在 Symfony 2.3 中被移除

    【讨论】:

    • 酷。不知道mapped 选项。
    • 谢谢。我将使用 property_path = false。
    • 对 SF4 也很有帮助
    【解决方案2】:

    使用property_path 选项:

    $builder->add('image', 'file', [
        'property_path' => false,
    ]);
    

    【讨论】:

    • 这从 Symfony 2.3 开始被移除。新方法是在新的正确答案中使用mapped
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多