1

根据他们的指示,我正在尝试通过以下方式提取通过管理员上传的图像:

{{ Voyager::image( $brand->logo ) }}

它没有获取 url,而是给了我一个带有附加 JSON 项的 url:

http://job-tool.test/storage/[{"download_link":"brands\/April2018\/3Yrma1PZogiMiYOFmPGg.png","original_name":"logo_petiq.png"}] 

宠物智商

运行只是{{ $brand->logo }}给了我没有前置 url 的数组。我在这里想念什么?

我也试图只使用它:{{ Voyager::image( $brand->logo->download_link ) }}但我收到此错误:

Trying to get property 'download_link' of non-object (View: /Users/johnbriggs/Code/Laravel/job-tool/resources/views/brands/show.blade.php)
4

3 回答 3

5

试试怎么样;

{{ Voyager::image( $brand->logo->download_link ) }}

看过 voyager 包之后, Voyager::image 函数是

   public function image($file, $default = '')
    {
        if (!empty($file)) {
            return Storage::disk(config('voyager.storage.disk'))->url($file);
        }
        return $default;
    }

所以你能试试像

<?php 
$file = (json_decode($brand->logo))[0]->download_link;
?>
{{ Voyager::image( $file ) }}

尽管我很欣赏这是一种不太干净的方法。

于 2018-04-13T23:33:39.213 回答
3

一年后也遇到了同样的问题。Simon R 的上述回答对我来说效果很好。只需在图像标签内回显解码的 json。像这样的东西:

    <img src="{{ Voyager::image( $file ) }}">
于 2019-06-18T13:23:02.503 回答
0

尝试这个 :

{{Voyager::image($article->thumbnail('medium','cover'))}}

这是 Voyager 中封面字段的验证:

{
    "resize": {
        "width": "728",
        "height": null
    },
    "quality": "80%",
    "upsize": true,
    "thumbnails": [
        {
            "name": "medium",
            "scale": "50%"
        },
        {
            "name": "small",
            "scale": "27%"
        }
    ],
    "validation": {
        "rule": "required"
    }
}
于 2021-02-20T12:06:23.950 回答