Вставить существующий файл в форму редактирования

Когда я создаю новый продукт, я загружаю нужный образ и все в порядке.

Но когда я открываю страницу с формой для редактирования, снова прошу загрузить файл, потому что поле с картинкой обязательно, как мне вставить существующий файл в форму или как обойти этот момент?

Продукт:

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
            ])
        ;
    }
   // ...
}

Вы уже читали пример в документации? symfony.com/doc/current/controller/upload_file.html

Jim Panse 05.07.2018 09:27

Есть ли причина, по которой вы устанавливаете свой data_class равным нулю?

Jim Panse 05.07.2018 09:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
57
1

Ответы 1

Как сказал вам @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

Я вообще про другое спрашивал

Zanetti 06.07.2018 23:05

Я не очень понимаю, еще что? Я дал вам два способа отобразить уже загруженное изображение

D. Schreier 07.07.2018 10:11

Другие вопросы по теме