检索具有身份验证和多态关系的头像用户

时间:2016-03-04 07:04:09

标签: laravel authentication laravel-4 polymorphic-associations avatar

我尝试在登录我的应用时检索用户的头像。

实际上,对于最佳实践,我使用与图像表的多态关系。

我的图片表看起来像。

Schema::create('images', function(Blueprint $table)
    {
        $table->increments('id');
        $table->string('path');
        $table->string('alt');
        $table->string('title');
        $table->string('link');
        $table->integer('imageable_id');
        $table->string('imageable_type');
        $table->timestamps();
    });

我的路径与我的头像和imageable_id user_id关系有关,而imageable_type与关联的模型(用户)有关。

但是当我检查用户是否是日志时以及尝试使用

访问我的对象后
@if(Auth::user()->image )
<img alt="" src="{{????????}}">
@endif

在我的模型中,我有这样的关系

 public function image(){
    return $this->morphMany('Image','imageable');
}

如何使用Auth :: user() - &gt; image

访问我的用户图像路径

由于

1 个答案:

答案 0 :(得分:1)

由于morphMany()允许多个关系,我首先将方法重命名为images():

public function images()
{
    return $this->morphMany('App\Image','imageable');
}

然后,我会在User模型上创建另一个方法,例如defaultImage(),这意味着第一个图像:

public function defaultImage()
{ 
    return $this->images()->first();
}

然后,在您的模板中,它将成为:

@if(!is_empty(Auth::user()->defaultImage()))
    <img alt="" src="{{ Auth::user()->defaultImage()->path }}">
@endif