Удалить фото, только удалить файл, но не записывать в базу данных - загрузить несколько изображений в виде формы коллекции - PullRequest
0 голосов
/ 23 декабря 2019

Мне очень нужна ваша помощь.

Я пытаюсь сделать: Form Collection от ninsuo symfony-collection, в которой есть поле для загрузки файла (изображения) VichUploaderBundle.

Я могу добавить новую коллекциюэлемент и положить изображение для ввода - это работает

Когда я пытаюсь проверить удаление файла в форме коллекции, мой файл будет удален с сервера, но у меня все еще есть запись в базе данных - только image_name и image_size dispsear.

Пожалуйста, помогите с этим. Я положил несколько изображений, чтобы показать, как это работает. Скажите мне, что я должен проверить в моем коде. У меня есть Symfony4. Я использую ninsuo symfony-collection и VichUploaderBundle.

  [1]: https://i.stack.imgur.com/sySja.png
  [2]: https://i.stack.imgur.com/D5axU.png
  [3]: https://i.stack.imgur.com/HlWxo.png

АВТОМОБИЛЬ Entity:

/**
 * @ORM\OneToMany(targetEntity="App\Entity\Photo", mappedBy="car", cascade={"persist", "remove"})
 * @ORM\JoinColumn(nullable=true)
 * @Assert\Valid()
 */
private $photos;

ФОТО Entity:

/**
 * @Vich\UploadableField(mapping="photo", fileNameProperty="imageName", size="imageSize")
 * @Assert\Image(
 *     maxSize = "1M",
 *     maxSizeMessage = "Maksymalny rozmiar zdjęcia to 1 MB.",
 *     minWidth = 100,
 *     maxWidth = 3000,
 *     minHeight = 100,
 *     maxHeight = 3000
 * )
 */
private $imageFile;

Тип формы: CARTYPE

->add('photos', CollectionType::class, [
                'label'        => false,
                'entry_type'   => PhotoType::class,
                'allow_add'    => true,
                'allow_delete' => true,
                'prototype'    => true,
                'required'     => false,
                'by_reference' => false,
                'delete_empty' => true,
                'attr' => [
                    'class' => 'form-collection',
                ],
                'entry_options' => [
                    'label' => false
                ],
            ])

FormType: PHOTOTYPE

->add('imageFile', VichImageType::class, array(
                'label' => false,
                'required' => false,
                'allow_delete' => true,
                'download_uri' => false,
                'download_label' => false
            ));

TwigTemplate: ADDCAR - фрагмент с кодом скрипта

$('.form-collection').collection({
        min: 0,
        max: 3,
        allow_duplicate: false,
        allow_up: false,
        allow_down: false,
        add: '<a href="#" title="Dodaj"><span class="fa fa-plus-square"></span></a>',
        remove: '<a href="#" title="Usuń"><span class="fa fa-minus-square"></span></a>',
        add_at_the_end: true
    });

Контроллер: ADDCAR

$ form = $ this-> createForm(CarType :: class, $ car);

    $form->handleRequest($request);
    if ($form->isSubmitted()) {
        if ($form->isValid()) {
            /** @var Car $car */
            $car = $form->getData();
            $car->setUser($this->getUser());

            foreach($car->getPhotos() as $photo){
                $photo->setCar($car);
            }

            $entityManager->persist($car);
            $entityManager->flush();}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...