Php 将(用户、角色、用户\角色)SQL原始查询转换为Laravel中的雄辩

Php 将(用户、角色、用户\角色)SQL原始查询转换为Laravel中的雄辩,php,laravel,eloquent,Php,Laravel,Eloquent,尊敬的先生,我必须从user_role pivot表中获取用户角色名称 我使用Sql原始查询成功地完成了这项工作。但我必须使用雄辩的。 请将下面的原始sql代码转换成雄辩的,请帮助我 先生,我是新来的 $role = DB::table('users') ->join('user_roles', 'users.id', '=', 'user_roles.user_id') ->join('roles', 'roles.id', '=', 'user_roles.ro

尊敬的先生,我必须从user_role pivot表中获取用户角色名称

我使用Sql原始查询成功地完成了这项工作。但我必须使用雄辩的。 请将下面的原始sql代码转换成雄辩的,请帮助我 先生,我是新来的


$role = DB::table('users')
    ->join('user_roles', 'users.id', '=', 'user_roles.user_id')
    ->join('roles', 'roles.id', '=', 'user_roles.role_id')
    ->select('roles.name')->where('users.id', '=',$user->id)
    ->get();

你可以试试拉威尔·艾尔昆特(Laravel Eloquent)的《许多人》(Manytomy)关系。它的设置与这里的透视表完全相同

将此方法添加到您的
用户
模型

function roles {
    return $this->belongsToMany('App\Role', 'user_roles', 'user_id', 'role_id');
}
在控制器中,您可以使用

$roles = User::with('roles:name')->where('id', $user->id)->get();
试一下这个方法,你不需要改变任何东西,只要调整你的模型和控制器


有关更多信息,请参见

对不起,先生/女士,我想使用雄辩功能获取角色名称。例如:口香糖等