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 }} {{ 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>
所以我正在尝试生成一个前端用户列表,但我无法访问头像 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 }} {{ 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>