在 Laravel Eloquent 中加入 Table 个值

Join Table Values in Laravel Eloquent

我在控制器上有一个 index() 函数,它列出了我的所有用户。目前我可以列出所有用户和用户的值,但我无法从另一个 table 获取信息。这是我试图在 Eloquent.

中复制的 SQL 查询的示例

SELECT user.id, user.name, user.email, user.title, timezones.name FROM users, timezones WHERE user.timezone=timezones.id

我目前显示用户的方式是:

$users = User::latest()->paginate(5); return view('users.index', compact('users'));

Table结构如下

用户Table:

id | name | email | timezone (int)

时区Table:

id | name

要输出数据,这是我的 index.blade.php 文件:

@foreach ($users as $user)
<tr>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td>{{ $user->title }}</td>
<td>{{ $user->timezone }}</td>
</tr>
@endforeach

一种方法是 join timezones table 代替:

$users = User::select('user.id', 'user.name', 'user.email', 'user.title', 'timezones.name as timezone')
    ->join('timezones', 'user.timezone', 'timezones.id')
    ->latest()
    ->paginate(5);