Laravel 使用nova媒体库上载图像,并使用nova页面显示图像

Laravel 使用nova媒体库上载图像,并使用nova页面显示图像,laravel,laravel-7,laravel-nova,nova-media-library,Laravel,Laravel 7,Laravel Nova,Nova Media Library,所以我用的是拉威尔7号和新星2号 我有设置和工作,我用编辑静态内容在我的网页 我在whitecube/nova页面模块中的头选项中为我的网站徽标创建了一个上载字段。从后端来看,一切似乎都很好。我可以从我的计算机中选择一个图像,并成功地将其上载并保存。现在我要在我的刀片模板中显示该图像 我通常会使用 @option('header.logo') 从whitecube/nova页面获取数据,但输出文件ID(在本例中为18)。我需要的是文件路径而不是id。因此我查看了classic-o/nova媒体

所以我用的是拉威尔7号和新星2号

我有设置和工作,我用编辑静态内容在我的网页

我在whitecube/nova页面模块中的头选项中为我的网站徽标创建了一个上载字段。从后端来看,一切似乎都很好。我可以从我的计算机中选择一个图像,并成功地将其上载并保存。现在我要在我的刀片模板中显示该图像

我通常会使用

@option('header.logo')
从whitecube/nova页面获取数据,但输出文件ID(在本例中为18)。我需要的是文件路径而不是id。因此我查看了classic-o/nova媒体库文档,似乎我需要使用API才能使用文件id获取文件路径。。。所以现在我很困惑。。。我不明白怎么做。。。我尝试了以下方法:

<div class="logo">
    @php
        use ClassicO\NovaMediaLibrary\API;
        $logo = API::getFiles(@option('header.logo'), null, true)
    @endphp
    <a href="/"><img src="{{ $logo->path }}" title="Boutique Terrey.ca" /></a>
</div>
My HeaderOptions.php页面如下所示:
namespace App\Nova\Templates;

use Illuminate\Http\Request;
use Laravel\Nova\Fields\Text;
use Whitecube\NovaPage\Pages\Template;
use ClassicO\NovaMediaLibrary\MediaLibrary;

class HeaderOptions extends Template {

    /**
     * Get the fields displayed by the resource.
     *
     * @param  \Illuminate\Http\Request $request
     * @return array
     */
    public function fields(Request $request)
    {
        return [
            MediaLibrary::make('Logo')->types(['Image'])->preview('thumb'),
            Text::make('Phone', 'phone'),
            Text::make('Email', 'email'),
        ];
    }

    /**
     * Get the cards available for the request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function cards(Request $request)
    {
        return [];
    }

}
当您使用nova媒体库上载图像并使用nova页面显示时,输出文件路径的正确方式是什么?我迷路了!提前谢谢

===========================

更新 好消息!我设法让它工作。。。但我只是不喜欢我的解决方案

<div class="logo">
    @php
        use ClassicO\NovaMediaLibrary\API;
        $id =  Page::option('header')->logo;
        $logo = API::getFiles($id, null, true);
    @endphp
    <a href="/"><img src="{{ $logo->url }}" title="Boutique Terrey.ca" /></a>
</div>

@php
使用ClassicO\NovaMediaLibrary\API;
$id=Page::option('header')->logo;
$logo=API::getFiles($id,null,true);
@endphp
图像显示为。。。但是在我的刀片模板中使用“使用”是很难看的。。。有更好的方法吗

现在我也可以这么做了

<div class="logo">
    @php
        $logo = ClassicO\NovaMediaLibrary\API::getFiles(Page::option('header')->logo, null, true);
    @endphp
    <a href="/"><img src="{{ $logo->url }}" title="Boutique Terrey.ca" /></a>
</div>

@php
$logo=ClassicO\NovaMediaLibrary\API::getFiles(Page::option('header')->logo,null,true);
@endphp
但同样,$logo不应该出现在刀片文件中。。。如何将其传递给我的控制器

<div class="logo">
    @php
        $logo = ClassicO\NovaMediaLibrary\API::getFiles(Page::option('header')->logo, null, true);
    @endphp
    <a href="/"><img src="{{ $logo->url }}" title="Boutique Terrey.ca" /></a>
</div>