我正在尝试通过leftJoin提取管理员用户名。 我有一个名为 server_bans_history 和 users 的表。
server_bans_history表具有唯一的行,称为 steamid 和 admin_steamid
通过以下方式获取所有数据:
@foreach ($user->BanHistory as $BanHistory)
此代码可以正常工作,但是我不知道admin_steamid行是热的,我需要将该Steamid从用户表转换为用户名。
因为现在如果我使用{{ $BanHistory->username }}
,我将获得禁止用户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的了解!
答案 0 :(得分:0)
我认为应该是这样
$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('');