如何从php函数显示图像? [更新]
的default.htm
<img id="avatar-image" alt="Jason's Image" src="{{ getAvatarImage() }}" />
Component.php
public function getAvatarImage()
{
$var = \System\Models\File::select('disk_name')->where('attachment_id', $avatar_id)->first();
if (count($var) == 0) return "";
return $var->path;
}
如何获取图像源并显示图像?
答案 0 :(得分:1)
首先,您确定此函数返回正确的文件路径吗?我会考虑是。
因此,组织事情,您尝试做的是使用Twig environment内的自定义功能。
为此,您需要在CMS extending twig中注册您的功能。
第1步
创建一个registerMarkupTags()
方法,该方法返回由&#34;函数名称&#34;分配的自定义函数数组。在插件注册类中。
<强> YourPlugin / Plugin.php 强>
public function registerMarkupTags() {
return [
'functions' => [
'getAvatarImage' => [ $this, 'getAvatarImageInternal' ]
]
];
}
第2步
我们将自定义函数引用到$this
,因此请将该方法添加到同一个类中。
<强> YourPlugin / Plugin.php 强>
public function registerMarkupTags() {
return [
'functions' => [
'getAvatarImage' => [ $this, 'getAvatarImageInternal' ]
]
];
}
/**
* Example of registering a Twig function.
*
* @return string
*/
public function getAvatarImageInternal() {
// Your function body goes here.
$path = 'http://app.localhost/storage/image.jpg';
return $path;
}
第3步
现在注册了自定义功能,您可以在Twig环境中使用。
<img src="{{ getAvatarImage() }}" />
答案 1 :(得分:0)
首先,getAvatarImage
不是static
方法。这意味着您需要一个实例才能调用它。第二;要显示图像,您需要回显它以获得返回值(而不仅仅是调用它)。您的代码应该是这样的:
<?php
$avatar_id = 10; // JUST A SIMPLE SIMULATION. YOU SHOULD HAVE A WAY TO GET THE ID
$obj = new ClassContainingGetAvatarImageMethod();
$imgURL = $obj->getAvatarImage($avatar_id);
?>
<img id="avatar-image" alt="Jason's Image" src="<?php echo $imgURL;?>" />
OR
<img id="avatar-image" alt="Jason's Image" src="<?php
avatar_id = 10; // WHATEVER THE AVATAR_ID MAY BE
$obj = new ClassContainingGetAvatarImageMethod();
echo $obj->getAvatarImage($avatar_id);?>" />
答案 2 :(得分:0)
这不是直接从文件系统中选择图像的好方法。相反,你可以使用我在这个问题中解释的附件系统 How to change the front page & component image from the backend? how to get HTML tag attributes in php?