php - Laravel 多个连接?
问题描述
我正在尝试通过 leftJoin 取出管理员用户名。我有一个名为server_bans_history和users的表。
server_bans_history 表有一个名为steamid和admin_steamid的唯一行
通过以下方式获取所有数据:
@foreach ($user->BanHistory as $BanHistory)
这段代码工作正常,但我不知道热门的 admin_steamid 行,我需要将该 steamid 转换为用户表中的用户名。
因为现在如果我使用{{ $BanHistory->username }}
我会得到 BANNED 用户 USERNAME 而不是 ADMIN 用户名。
示例现在我正在使用代码:
$user->BanHistory = DB::table('server_bans_history AS sh')
->leftJoin('users AS us', 'us.steam_id', '=', 'sh.steamid')
->where('sh.steamid', '=', $user->steam_id)
->select("sh.*", "us.*")
->orderBy('sh.date', 'desc')
->get('');
我需要转换 admin_steamid -> user.username
我可以使用多个 leftJoin 或类似的东西吗?
感谢您帮助我理解 leftJoin!
解决方案
我认为应该是这样的:
$user->BanHistory = DB::table('server_bans_history AS sh')
->leftJoin('users AS us', 'us.steam_id', '=', 'sh.steamid')
->leftJoin('users AS us2', 'us.steam_id', '=', 'sh.admin_steamid')
->where('sh.steamid', '=', $user->steam_id)
->select("sh.*", "us.*", "us2.username as admin_name")
->orderBy('sh.date', 'desc')
->get('');
推荐阅读
- vba - Word VBA:插入分页符后,第1页上的我的文本框都转到第2页
- python - 为什么dict设置相同的atfer循环
- angular - 在 Angular2+ 中集成 PayU 支付网关 - API 如何与 Angular 客户端沟通支付完成?
- c# - 使用 EF、选择多次或使用包含哪个更好?
- javascript - jQuery 函数在 CodePen 中有效,但在 Node.js 服务器中无效
- javascript - 我有两个具有相同城市数据的下拉列表
- bootstrap-4 - Bootstrap - 自定义单选按钮
- python - 如何与 selenium python 代码中的 windows 元素交互?
- apache-nifi - 在 nifi 集群中分发从 GetMongo 读取的数据
- css - CSS悬停,同向过渡效果