Вывод аватара одним методом, как это сделать на ООП? Только изучаю ооп и Yii2.
Хочу выводить аватар юзера простым методом, но надо сделать проверку, есть ли аватар в базе, есть ли файл в папке.
А мне надо просто написать в одном месте user->profile->avatar)?> и метод вернул html::a(img и тд
в модуле юзера определяю св-ва
public static $avatarPath = '@app/public_html/upload/images/avatar';
public static $avatarUrl = '/upload/images/avatar';
public static $noAvatar = '/upload/images/avatar/noavatar.png';
а вот как сам метод нарисовать не соображу

21 Авг 2019 в 07:06
159 +1
0
Ответы
1

Вам нужно создать метод getAvatar в классе Module модуля user. В этом методе вы будете производить необходимые проверки наличия аватара в базе данных и файле, и в зависимости от результата возвращать соответствующий HTML-код для вывода аватара.

Пример кода метода getAvatar может выглядеть примерно так:

public static function getAvatar($avatar)
{
if ($avatar) {
// Если у пользователя есть аватар в базе данных
$avatarUrl = self::$avatarUrl . '/' . $avatar;
if (file_exists(Yii::getAlias(self::$avatarPath . '/' . $avatar))) {
return Html::a(Html::img($avatarUrl), $avatarUrl);
} else {
// Если файл аватара не найден
$noAvatarUrl = self::$noAvatar;
return Html::a(Html::img($noAvatarUrl), $noAvatarUrl);
}
} else {
// Если у пользователя нет аватара в базе данных
$noAvatarUrl = self::$noAvatar;
return Html::a(Html::img($noAvatarUrl), $noAvatarUrl);
}
}

Обратите внимание, что в данном примере предполагается, что используется класс Html из Yii2 для генерации HTML-кода. Если вы не используете Yii2, то вам придется найти соответствующий способ генерации HTML-кода для вывода изображения.

Теперь вы можете использовать этот метод в вашем шаблоне следующим образом:

<?= \modules\user\Module::getAvatar($model->user->profile->avatar)?>

Этот код вызовет метод getAvatar модуля user и вернет HTML-код для вывода аватара пользователя в зависимости от наличия аватара в базе данных и файле.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 541 автору
Первые отклики появятся уже в течение 10 минут
Прямой эфир