【发布时间】:2018-07-26 09:54:47
【问题描述】:
我正在尝试通过 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!
【问题讨论】:
-
您为什么不直接使用 Eloquent 关系,它将为您处理所有这些,而不必编写大量繁重的连接操作?文档:laravel.com/docs/5.6/eloquent-relationships
-
感谢@OleHaugset 的回答,但我需要先了解如何使用多个leftJoin :)
-
更新了我的帖子,以更好地了解我的需求:)