当我创建新产品时,我加载了所需的图像,一切都很好。
但是,当我打开带有表单的页面进行编辑时,再次要求上传文件,因为带有图片的字段是必填字段,如何将现有文件插入表单中或如何解决? / 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
])
;
}
// ...
}
答案 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
模板