【问题标题】:getPublicUrls() returns an empty arraygetPublicUrls() 返回一个空数组
【发布时间】:2018-08-06 18:56:49
【问题描述】:

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

    $images = $repository->findAll();

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

... 导致一个空数组,我希望在其中看到至少一个面向公众的 url。

我配置错了什么?

【问题讨论】:

    标签: php symfony sonata


    【解决方案1】:

    我最终做了以下事情:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-10-10
        • 1970-01-01
        • 2020-02-11
        • 2021-08-11
        • 2021-07-24
        • 2014-01-27
        • 2019-04-27
        • 2015-07-10
        • 1970-01-01
        相关资源
        最近更新 更多