Как отобразить изображение из функции php?

Как отобразить изображение из функции 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

Решение

Прежде всего, вы уверены, что эта функция возвращает правильный путь к файлу? Я учту это да.

Так что, упорядочивая вещи, вы пытаетесь использовать пользовательскую функцию внутри Веточка среды.

Для этого вам необходимо зарегистрировать свою функцию в CMS расширяющаяся веточка.


ШАГ 1

Создать registerMarkupTags() метод, который возвращает массив пользовательских функций, назначенных «именем функции» в классе регистрации плагина.

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

Другие решения

Первый, 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;?>" />

ИЛИ ЖЕ

   <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);?>" />
0

Это не хороший способ выбрать изображение непосредственно из файловой системы. Вместо этого вы можете использовать систему вложений, как я объяснил в этом вопросе
Как изменить главную страницу & компонентное изображение из бэкэнда? как получить атрибуты HTML-тегов в php?

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector