Когда я создаю новый продукт, я загружаю нужный образ и все в порядке.
Но когда я открываю страницу с формой для редактирования, снова прошу загрузить файл, потому что поле с картинкой обязательно, как мне вставить существующий файл в форму или как обойти этот момент?
Продукт:
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
])
;
}
// ...
}
Есть ли причина, по которой вы устанавливаете свой data_class равным нулю?






Как сказал вам @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
Я вообще про другое спрашивал
Я не очень понимаю, еще что? Я дал вам два способа отобразить уже загруженное изображение
Вы уже читали пример в документации? symfony.com/doc/current/controller/upload_file.html