如何使用左连接和内连接编写laravel查询?

如何使用左连接和内连接编写laravel查询?,laravel,eloquent,Laravel,Eloquent,我有下面的表,我想用一个条件进行左连接,并从左连接表中进行另一个内部连接 用户表 id | name 1 john 2 sam 3 cecil 如果你能帮我写一个有说服力的问题 谢谢 附言:事实上,我正在使用spatie/laravel权限,并试图让所有用户使用他们的角色名。这应该可以正常工作: App\User::with('roles')->get(); 为什么不使用它们的内置函数,如$user->getPermissionsVialol

我有下面的表,我想用一个条件进行左连接,并从左连接表中进行另一个内部连接

用户表

id | name 1 john 2 sam 3 cecil 如果你能帮我写一个有说服力的问题

谢谢


附言:事实上,我正在使用spatie/laravel权限,并试图让所有用户使用他们的角色名。

这应该可以正常工作:

App\User::with('roles')->get();

为什么不使用它们的内置函数,如
$user->getPermissionsVialoles()?如果我有50个用户,并且在列出所有用户时要调用此方法50次,会发生什么情况?它会导致性能下降吗?我就是这么想的你救了我!!这对我很有用,$roles=Role::all()$users=User::with('roles')->paginate(1);
role_id  | model_type | model_id
  1         App\User       1
  2         App\User       2
id | name | role

 1   john   admin
 2   sam    editor
 3   cecil   -
 DB::table('users')->select('id', 'name', 'email', 'created_at', 'role_id')
            ->leftJoin('model_has_roles', 'model_has_roles.model_id', '=', 'users.id')
            ->where('model_has_roles.model_type', '=', 'App\User')
            ->paginate(1);
App\User::with('roles')->get();