代码之家  ›  专栏  ›  技术社区  ›  Mayor of the Plattenbaus

getPublicUrls()返回空数组

  •  0
  • Mayor of the Plattenbaus  · 技术社区  · 8 年前

    我的Symfony应用程序中有一个包含图片的媒体对象存储库。(这张图片是使用Sonata媒体包上传的。)在我的控制器中使用以下代码。。。

        $images = $repository->findAll();
    
        foreach ($images as $image) {
            /* @var $image Media */
            $urls = $image->getPublicUrls();
            $output[] = [
                'name' => $image->getName(),
                'something' => $urls,
            ];
        }
    

    ... 结果是在一个空数组中,我希望看到至少一个面向公众的url。

    我误解了什么?

    2 回复  |  直到 8 年前
        1
  •  0
  •   l13    8 年前

    据我所知,在Sonata\MediaBundle\Model\Media中没有这样的方法getPublicUrls,如果我是对的,这是您的自定义方法,您必须在保存媒体之前进行填充。如果我在这里,您可以在图像提供程序中执行:)

        2
  •  0
  •   Mayor of the Plattenbaus    8 年前

    我最终做了以下工作:

        $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。