Php 连接两个表并在laravel中获取行

Php 连接两个表并在laravel中获取行,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有桌子: 角色: 身份证名称 用户角色: 角色\u id用户\u id公司\u id用户\u类型 我要公司id显示他所有的角色名 角色->id是角色用户->角色id 我的代码: $role = DB::table('role_user')->select('role_id')->where('company_id', $cp)->get(); foreach ($role as $key) { $role = $key; } $roles = Role::where

我有桌子:

角色:

身份证名称

用户角色:

角色\u id用户\u id公司\u id用户\u类型

我要公司id显示他所有的角色名

角色->id是角色用户->角色id

我的代码:

$role = DB::table('role_user')->select('role_id')->where('company_id', $cp)->get();
foreach ($role as $key) {
    $role = $key;
}

$roles = Role::where('id', $role->role_id)->get();
此代码仅显示一个角色名称,但必须显示3个。
如果我在foreach之前添加($role),那么它会给出3个role\u id的数组

使用
[join][1]

$roles = Role::select('roles.*')
->join('role_user', 'role_user.role_id','=','roles.id')
->where('company_id', $cp)
->get();

您可以使用表联接来实现所需的输出:

$role = DB::table('role_user')
->leftjoin('roles', 'role_user.role_id', '=', 'roles.id')
->where('company_id', $cp)
->get();