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

retrieve avatar user with auth and polymorphic relation

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

实际上,为了最佳实践,我对图像使用了多态关系 table。

我的图片 table 看起来像 .

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()->image

访问我的用户图像路径

谢谢

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

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

然后,我将在用户模型上创建另一个方法,例如 defaultImage(),这意味着第一张图片:

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

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

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