getPublicUrls() returns 一个空数组
getPublicUrls() returns an empty array
我的 Symfony 应用程序中有一个媒体对象存储库,其中包含一张图片。 (这张图片是使用 Sonata Media Bundle 上传的。)在我的控制器中使用以下代码 ...
$images = $repository->findAll();
foreach ($images as $image) {
/* @var $image Media */
$urls = $image->getPublicUrls();
$output[] = [
'name' => $image->getName(),
'something' => $urls,
];
}
... 结果是一个空数组,我希望在其中至少看到一个面向 public 的 url。
我配置错了什么?
我最后做了以下事情:
$images = $repository->findAll();
/* @var $imageProvider ImageProvider */
$imageProvider = $this->get('sonata.media.provider.image');
foreach ($images as $image) {
/* @var $image Media */
$output[] = [
'name' => $image->getName(),
'url' => $imageProvider->generatePublicUrl($image, 'reference'),
];
}
这并没有真正回答我最初的问题,但它实现了我想要的目标,因为它为我的图像提供了一个可公开访问的 url。
据我在 Sonata\MediaBundle\Model\Media 中所见,没有这样的方法 getPublicUrls,如果我是对的,这是您的自定义方法,您必须在保存媒体之前填充。如果我就在这里,你可以在图像提供者中完成:)
我的 Symfony 应用程序中有一个媒体对象存储库,其中包含一张图片。 (这张图片是使用 Sonata Media Bundle 上传的。)在我的控制器中使用以下代码 ...
$images = $repository->findAll();
foreach ($images as $image) {
/* @var $image Media */
$urls = $image->getPublicUrls();
$output[] = [
'name' => $image->getName(),
'something' => $urls,
];
}
... 结果是一个空数组,我希望在其中至少看到一个面向 public 的 url。
我配置错了什么?
我最后做了以下事情:
$images = $repository->findAll();
/* @var $imageProvider ImageProvider */
$imageProvider = $this->get('sonata.media.provider.image');
foreach ($images as $image) {
/* @var $image Media */
$output[] = [
'name' => $image->getName(),
'url' => $imageProvider->generatePublicUrl($image, 'reference'),
];
}
这并没有真正回答我最初的问题,但它实现了我想要的目标,因为它为我的图像提供了一个可公开访问的 url。
据我在 Sonata\MediaBundle\Model\Media 中所见,没有这样的方法 getPublicUrls,如果我是对的,这是您的自定义方法,您必须在保存媒体之前填充。如果我就在这里,你可以在图像提供者中完成:)