Вставьте существующий файл в форму редактирования - PullRequest
0 голосов
/ 05 июля 2018

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

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

Продукт:

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

ProductType:

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

1 Ответ

0 голосов
/ 06 июля 2018

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

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...