Octobercms — Получение аватара пользователя интерфейса

Поэтому я пытаюсь составить список пользователей внешнего интерфейса, но у меня возникают проблемы с достижением URL-адреса аватара.

Я могу получить все имена пользователей, но когда я пытаюсь сделать то же самое с изображением профиля, отображается запасной вариант.
{{ user.avatar.url }} работает на странице пользователя, когда кто-то вошел в систему.

Я пытался найти запрос, используемый в бэкэнде, чтобы получить аватар пользователя в предварительном просмотре, но я не смог его найти.

Я не знаю, имеет ли это отношение, но я использую https://octobercms.com/plugin/netsti-uploader для внешних пользователей загружать свои аватары. Это работает, поскольку, если я загружу его на веб-интерфейс, предварительный просмотр пользовательского интерфейса покажет правильный аватар

Это то, что я использую, чтобы получить всех пользователей:

КОД:

use October\Rain\Auth\Models\User;

function onInit() {
$this['activatedUsers'] = User::whereIsActivated(true)->get();
}

MARKUP

<div>
{% for user in activatedUsers %}
<div class="card list">
{% if user.avatar %}
<img class="userimg" src="{{ user.avatar.url }}">
{% else %}
<img class="userimg" src="assets/images/user.png">
{% endif %}
<p class="name"><span class="rank-title">NAME</span><br>{{ user.name }}&nbsp;{{ user.surname }}</p>
{% if user.last_login %}
<p><span class="rank-title">LAST UPDATE</span><br>{{ user.last_login }}</p>
{%endif%}
</div>
{% endfor %}

Вся помощь приветствуется, спасибо

3

Решение

попробуйте использовать это так.

use RainLab\User\Models\User;

function onInit() {
$this['activatedUsers'] = User::whereIsActivated(true)->get();
}

наценка

{% for user in activatedUsers %}
<div class="card list">
{{ user.avatar.path }}
</div>
{% endfor %}
2

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

Посмотри на Октябрь \ дождь \ Database \ Attach \ File Класс, чтобы увидеть доступные методы:

getThumb($w,$h,$options) — Создает и возвращает путь миниатюры

getPath() — возвращает публичный адрес для доступа к файлу

getLocalPath() — Возвращает локальный путь к этому файлу. Если файл хранится удаленно, он будет загружен во временный каталог.

getDiskPath() — возвращает путь к файлу относительно диска хранения

например:

{{user.avatar.getThumb(200,200, { mode : 'crop' } )}}

1

установить плагин «Frontend File Uploader for Model»

вставить {% component 'imageUploader' %} в вашей разметке

вставить

function onInit()
{
$user = Auth::getUser();
if($user){
$component = $this->addComponent(
'NetSTI\Uploader\Components\ImageUploader',
'imageUploader',
['modelClass'=>'RainLab\User\Models\User','modelKeyColumn'=>'avatar', 'deferredBinding' => false]
);

$component->bindModel('avatar', $user);
}
}

в вашем разделе кода

0