由于exists()函数,Voyager不显示图像

时间:2018-02-04 08:36:45

标签: php image laravel laravel-5 voyager

我有一个使用Laravel创建的博客项目,它在我的localhost上运行正常,我上传了项目并将其转换为在共享主机上工作,这不是我第一次这样做,在上传项目和数据库之后,一切正常,我的意思是在打开博客时,我可以看到我的帖子( WITH PICTURES )和类别以及Voyager CPanel中的所有内容我无法做到看图像,所以我选择了admin徽标作为示例,在数据库中它包含此名称(settings/January2018/PnrVRpff94865gfxeZ0gt.png),此图像的Voyager sideBar Blade代码为:

<?php $admin_logo_img = Voyager::setting('admin_icon_image', ''); ?>
@if($admin_logo_img == '')
    <img src="{{ voyager_asset('images/logo-icon-light.png') }}" alt="Logo Icon">
@else
    <img src="{{ Voyager::image($admin_logo_img) }}" alt="Logo Icon">
@endif

并且chrome上的结果是:

<img src="" alt="Logo Icon">

所以我去了Voyager::image()函数:

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

        return $default;
    }

我做了我的测试,这是这个徽标案例中的结果:

empty($file)返回假(好)

Storage::disk(config('voyager.storage.disk'))->exists($file)返回False(错误

Storage::disk(config('voyager.storage.disk'))->url($file)返回正确的网址(好)

知道config('voyager.storage.disk')返回&#34;公众&#34;并且文件系统磁盘配置不受影响。

当您在Voyager::image()函数中看到问题时,请帮我正确解决此问题。

更新:

我尝试将/ vendor / tcg / voyager / src文件夹中的Voyager :: image()函数更改为:

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

它运作良好,但是你认为这是一个糟糕的解决方案,我需要一个合适的解决方案,所以请帮忙。

0 个答案:

没有答案