在 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);
我在控制器上有一个 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);