如何获取模型的多态关系,返回null Laravel 5.6

时间:2019-01-25 16:18:42

标签: php laravel laravel-5

我有一个users表,其中包含用户名和密码访问数据,但是该表尝试转换多态关系,因为该访问可以属于不同的模型model1,model2等。

迁移表用户

$table->unsignedInteger('roleable_id');
$table->string('roleable_type');

模型用户

public function roleable()
{
    return $this->morphTo();
}

public function getFullNameAttribute()
{
    return  $this->roleable->attributes['lastname'] . ' ' .
            $this->roleable->attributes['name'];
}

其他型号

public function rol()
{
    return $this->morphOne(App\User::class,'roleable');
}

我试图通过用户访问模型数据,但是我总是返回错误,

  

试图获取非对象的属性“属性”(查看:

我在做什么错或者方法错误?

查看

{{ auth()->user()->full_name }}

2 个答案:

答案 0 :(得分:1)

听起来好像没有为用户模型设置角色。检查数据库,并确保roleable_id和roleable_type中包含这些值。

答案 1 :(得分:1)

您收到的错误提示该用户尚未与roleable模型关联。