Мне очень нужна ваша помощь.
Я пытаюсь сделать: 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();}}