如何让laravel关系起作用?

时间:2018-03-18 21:31:33

标签: php laravel

尝试通过将用户表中的role_id和角色表中的user_id链接到用户表来了解如何从角色表中获取角色名称。

下面是我所得到的,我已经完成了几个命名错误。

我该如何开展这项工作?

Works:输出'4'

{{ Auth::user()->role_id }}

不:不输出任何内容

{{ Auth::user()->role['name'] }}

错误:尝试获取非对象的属性(查看:

{{ Auth::user()->role->name }}

关系:

User model:

public function roles()
{
    return $this->hasOne('App\Role');
}

Role model:

public function roles()
{
    return $this->belongsToMany('App\User');
}

完整角色类:

<?php

namespace Laravel;

use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
  //

protected $fillable = [
    'name',
];

public function users()
{
    return $this->belongsToMany('App\User');
}

}

1 个答案:

答案 0 :(得分:0)

可能应该是这个

用户模型:

public function role()
{
    return $this->hasOne('App\Role');
}

角色模型:

public function users()
{
    return $this->belongsToMany('App\User');
}

然后

{{ Auth::user()->role->name }}