首页 > 解决方案 > 如何使用 Eloquent 通过外键值从数据库中获取所有行?

问题描述

我在我的网站上使用 Laravel 并使用 Eloquent 来管理我的数据库。我有具有角色的用户。这在我的数据库中看起来像这样:

|USERS                             |
|----------------------------------|
| ID | EMAIL | ... | ROLE_ID | ... |

|ROLES       |
|------------|
| ID | LABEL |

我想通过他们的角色标签选择用户。

我尝试使用 join 和 where 函数,但我不知道为什么返回的用户将ID他们的ROLE_ID.

    $admins = DB::table('users')
        ->leftJoin('roles', 'users.role_id', '=', 'roles.id')
        ->where('roles.label','=', 'admin')
        ->get();

这是返回的用户之一:

object(stdClass)[285]
  public 'id' => int 3
  ...
  public 'role_id' => int 3
  ...

这个ID用户的在数据库中是 2。如果我将其更改ROLE_ID为 1,它ID也将更改为 1。

我在互联网上寻找解决方案,但我真的不知道要寻找什么,所以我没有找到任何东西。

我相信这很简单,但我还是被卡住了。

标签: phplaraveleloquent

解决方案


推荐阅读