Как получить URL изображения, когда я получаю сущность в Symfony + VichUploaderBundle? - PullRequest
0 голосов
/ 15 июня 2019

Спасибо VichUploaderBundle, который упрощает загрузку изображений в платформе Symfony 4.

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

Примечание: для конфигурации загрузчика vich и сопоставления сущностей это точно так же на github docs, поэтому я не буду вставлять его сюда, потому что я думаю, что это не нужно.


Пример кода

Домашний контроллер:

<?php
namespace App\Controller\Api;

//.....

/**
 * @Route("/home")
 */
class AdminHomeController extends AbstractController
{
    private $em;

    public function __construct(EntityManagerInterface $em)
    {
        $this->em = $em;
    }

    /**
     * @Route("/banner", methods={"GET"})
     */
    public function getHomeBannerList(SerializerInterface $serializer)
    {
        $repo = $this->em->getRepository(HomeBanner::class);
        $home = $repo->findAll();

        $data = $serializer->serialize($home, 'json');
        return new JsonResponse($data, Response::HTTP_OK, ['Content-Type' => 'application/json','Access-Control-Allow-Origin' => '*'], true);
    }

     /**
     * @Route("/banner", methods={"POST"})
     */
    public function addHomeBanner(Request $request)
    {
      $file = $request->files->get('image');
      $home = new HomeBanner();
      $home->setImageFile($file);
      $home->setUpdatedAt(new \DateTime());
      $this->em->persist($home);
      $this->em->flush();
    }
}

При посещении / дома / баннера, он выдаст мне:

[
  {
    "image" : "home01.jpg",
    "updated_at": "2019-06-14 00:00:00"
  },
  {
    "image" : "home02.jpg",
    "updated_at": "2019-06-14 00:00:00"
  },
]

Как мне сделать так, чтобы он возвращался с путем к изображению, а не только с именем изображения?

...