Laravel Nova:如何显示二进制字符串中的图像?

4n7*_*0wa 4 laravel laravel-nova

我将 PNG 的二进制内容保存在数据库中。我想在页面上显示这个 PNG,而不需要在磁盘上临时保存文件。我认为需要生成 img 标签,例如<img src="data:image/png;base64,......

但我不明白如何更好地实施它以及以什么类型的领域为基础。

            Image::make('Image')->displayUsing(function($item) {
                $mime_type = 'image/png';
                return 'data: ' . $mime_type . ';base64,' . base64_encode($item);
            }),
Run Code Online (Sandbox Code Playgroud)

但 Laravel Nova 生成了:

<img src="http://172.18.0.3/storage/data: image/png;base64,......" class="rounded-full w-8 h-8" style="object-fit: cover;">
Run Code Online (Sandbox Code Playgroud)

添加了不必要的http://172.18.0.3/storage/和圆形的类。

如何防止其添加?

4n7*_*0wa 6

Laravel Nova 2.0.1 的工作代码:

Image::make('QRCode', 'qrcode')->thumbnail(function($value, $disk) {
    return 'data: image/png;base64,' . $value;
})->preview(function($value, $disk) {
    return 'data: image/png;base64,' . $value;
})->displayUsing(function($value) {
return  base64_encode($value);})
Run Code Online (Sandbox Code Playgroud)

还需要rounded-fullfield.thumbnailUrl?t("img",{staticClass:"rounded-full w-8 h-8",文件 public\vendor\nova\app.js 中删除