Octobercms - 获取前端用户头像

Octobercms - Getting frontend user avatar

所以我正在尝试生成一个前端用户列表,但我无法访问头像 url。

我能够获取所有用户名,但是当我尝试对个人资料图片执行相同操作时,会显示回退。 当有人登录时,{{ user.avatar.url }} 正在用户页面上工作。

我试图寻找在后端使用的查询以在预览中获取用户头像,但我找不到它。

我不知道这是否相关,但我正在使用 https://octobercms.com/plugin/netsti-uploader 让前端用户上传他们的头像。它正在工作,因为如果我将它上传到前端,后端用户预览会显示正确的头像

这是我用来获取所有用户的方法:

代码:

use October\Rain\Auth\Models\User;

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

标记

<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 %}

感谢所有帮助,谢谢

尝试这样使用它。

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 %}

查看 October\Rain\Database\Attach\File class 以了解可用的方法:

getThumb($w,$h,$options) - 生成并returns 缩略图路径

getPath() - Returns public 访问文件的地址

getLocalPath() - Returns 此文件的本地路径。如果文件是远程存储的,它将被下载到一个临时目录。

getDiskPath() - Returns文件的路径,相对于存储磁盘

例如:

{{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);
    }
}

在您的代码部分

您可以使用'avatar'查询后端用户模型。

use Backend\Models\User;

...
$user = User::where('id', $author_id)->with('avatar')->first();
...
<h1>{{ user.avatar.path }}</h1>