微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Laravel Eloquent 中连接表值

如何解决在 Laravel Eloquent 中连接表值

我在一个控制器上有一个 index() 函数,它列出了我的所有用户。目前我可以列出所有用户用户的值,但我无法从另一个表中获取信息。这是我尝试在 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'));

表结构如下

用户表:

id |姓名 |电子邮件 |时区(整数)

时区表

id |姓名

输出数据,这是我的 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 表:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。