从数据库中获取图像路径并在前端显示(Octobercms)


Get image path from database and display on the frontend (Octobercms)

这是我的页面

page.htm(标记)-我设法获得了图像名称,但无法获得图像源

<img id="avatar-image" alt="Jason's Image" src="{{ avatar_id }}"/>
{{ file_name }} // working       
{{ avatar_id }} // not working

page.htm(代码)

function onStart()
{
    $var = 'System'Models'File::where("field", "=", "avatar")->first();
    $this["file_name"] = $var->file_name;
    $this["avatar_id"] = $var->path;
}

我的型号

型号.php

class Settings extends Model
{
    public $implement = ['System.Behaviors.SettingsModel'];
    public $settingsCode = 'dca_plugins_settings';
    public $settingsFields = 'fields.yaml';
    public $attachOne = [ 'avatar' => ['System'Models'File'] ];
}

field.yaml

fields:
  id:
    label: ID
    disabled: true
  name:
    label: Image
  avatar:
    label: Avatar
    type: fileupload
    mode: image
    imageHeight: 150
    imageWidth: 250

有人能告诉我如何获取路径(图片来源)吗?

遵循文档:

getPath()方法返回上传的公共文件的完整URL。下面的代码将打印如下内容…mysite.com/uploads/public/path/to/avatar.jpg

在你的情况下,应该是这样的:

$setting = Settings::first(); // Gets some settings model.
$avatar = $setting->avatar;
$avatarPath = null;
// Check if setting has an attached avatar.
if ($avatar) {
  $avatarPath = $avatar->getPath(); // Uploaded public file.
}

并通过PHP Section注入到Twig环境中。

$this['avatar_path'] = $avatarPath;