Спасибо 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"
},
]
Как мне сделать так, чтобы он возвращался с путем к изображению, а не только с именем изображения?