Symfony5 easyAdmin - vichUploader - PullRequest
1 голос
/ 05 января 2020

Я с symfony5. Я выбрал easyAdminBundle. Для загрузки изображений я пытаюсь использовать vichUploaderBundle. Проблема в том, что это работает только один раз. Например, для объекта «Служба» он работает только при создании новой службы (например, SEO, веб-сайт или печать). Когда я изменяю образ службы, которая уже существует, она больше не работает. Я следовал учебник на официальном сайте ...

# config/services.yaml
parameters:
    app.path.website_images: /images


# config/packages/vich_uploader.yaml
vich_uploader:
    db_driver: orm
    mappings:
        website_images:
            uri_prefix:         '%app.path.website_images%'
            upload_destination: '%kernel.project_dir%/public%app.path.website_images%'


?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;

/**
 * @ORM\Entity(repositoryClass="App\Repository\ServiceRepository")
 * @Vich\Uploadable
 */
class Service
{
    [...]

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $image;

    /**
     * @Vich\UploadableField(mapping="website_images", fileNameProperty="image")
     */
    private $imageFile;


    /**
     * @ORM\Column(type="datetime")
     */
    private $updatedAt;

  [...]

}


# config/packages/easy_admin.yaml
Service:
    label:           'Service'
    class:           App\Entity\Service
    list:
        fields:
            - { property: 'title' }
            - { property: 'image', type: 'image', base_path: '%app.path.website_images%' }
    form:
        fields:
            - { property: 'title' }
            - { property: 'imageFile', type: 'vich_image' }
            - { property: 'content', type: 'fos_ckeditor' }
  • Symfony 5.02
  • EasyAdminBundle 2.x

Иногда это работает, но в большинстве случаев это не так ...

1 Ответ

0 голосов
/ 08 января 2020
public function setImage(string $image): self

=>

public function setImage(?string $image): self

Ошибка местоположения была на уровне установщика. Вы должны добавить знак вопроса, чтобы принять ноль.

...