将现有文件粘贴到编辑表单中

时间:2018-07-05 01:36:59

标签: php symfony

当我创建新产品时,我加载了所需的图像,一切都很好。

但是,当我打开带有表单的页面进行编辑时,再次要求上传文件,因为带有图片的字段是必填字段,如何将现有文件插入表单中或如何解决? / p>

产品:

class Product {
    /**
     * @var string
     * @Assert\NotBlank
     */
    private $image;
    // ...
}

产品类型:

class ProductType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
           // ...
           ->add('image', FileType::class, [
                'data_class' => null
            ])
        ;
    }
   // ...
}

1 个答案:

答案 0 :(得分:0)

正如@JimPanse告诉您的那样,您应该阅读文档https://symfony.com/doc/current/controller/upload_file.html,该文档清楚地说明了如何管理文件上传。显示文件不是默认行为

在那之后,您应该在树枝上添加一行以显示图像

form.vars.value.image将返回您字段image的值

将此添加到树枝

{% if form.vars.value.image is defined and form.vars.value.image is not null %}
    <img alt="product" src="{{ form.vars.value.image }}"/>
{% endif %}

或者另一种方法是覆盖FileType模板