我怎样才能让这些基本的 Eloquent 关系发挥作用?

How can I get those basic Eloquent Relationships to work?

所以我有一个 table 用户,其中每个用户都有一个 role_id,然后我有一个角色 table,其中有 role_id 和角色名称.我面临的问题是在用户模型上。在迁移时,我正确地创建了外键,但是在模型上,当我尝试显示用户角色时,我不应该这样做吗?

public function roles()
    {
        return $this->belongsToMany(Role::class);
    }

WHenever 我在 artisan tinker 上找到一个用户,并尝试使用它 returns 的方法查看他的角色。我刚刚得到这个(在这种情况下,用户试图查看它具有管理员角色的角色,即 id 为 1 的角色):

Illuminate\Database\Eloquent\Relations\BelongsToMany {#3351
     +withTimestamps: false,
   }

我不应该得到角色名称吗?

要获取用户角色,您需要这样的代码

$user = User::find($id);
$roles = $user->roles()->get(); 
// or $roles = $user->roles with lazy loading

其他解决方案是

$user = User::with('roles')->find($id);
$roles = $user->roles

已编辑

public function role()
{
    return $this->belongsTo(Role::class, 'role_id', 'role_id');
}

获取具有角色的用户

$user = User::with('role')->find($id);
$role = $user->role