Поэтому я пытаюсь составить список пользователей внешнего интерфейса, но у меня возникают проблемы с достижением 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 }} {{ user.surname }}</p>
{% if user.last_login %}
<p><span class="rank-title">LAST UPDATE</span><br>{{ user.last_login }}</p>
{%endif%}
</div>
{% endfor %}
Вся помощь приветствуется, спасибо
попробуйте использовать это так.
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 %}
Посмотри на Октябрь \ дождь \ Database \ Attach \ File Класс, чтобы увидеть доступные методы:
getThumb($w,$h,$options)
— Создает и возвращает путь миниатюры
getPath()
— возвращает публичный адрес для доступа к файлу
getLocalPath()
— Возвращает локальный путь к этому файлу. Если файл хранится удаленно, он будет загружен во временный каталог.
getDiskPath()
— возвращает путь к файлу относительно диска хранения
например:
{{user.avatar.getThumb(200,200, { mode : 'crop' } )}}
установить плагин «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);
}
}
в вашем разделе кода