我是拉威尔的初学者。我正在按用户取出用户名 steam_id
.
我有一张table叫“ users
", " match_players
“和” matches
". users
表中有一行名为“ steam_id
“和” username
". match_players
“表有一行” steam_id
“和” match_id
". matches
表中有一行名为“ match_id
“也是。
我需要使用 match_id
> steam_id
> username
例子: users
表格:
用户名:paul | steam|id:0:0:045658 matches
表格:
匹配id:d54gwdg566g match_players
表格:`
蒸汽id:0:0:045658 |匹配id:d54gwdg566g
我试过这样的方法:
控制器:
$match->CTplayers = DB::table('match_players')->where('match_id', '=', $match->match_id)->where('team', '=', 1)->get();
$match->CTplayersSTEAM = DB::table('match_players')->where('match_id', '=', $match->match_id)->first()->steam_id;
$match->CTplayersID = User::where('steam_id', '=', $match->CTplayersSTEAM)->first()->username;
我的观点:
@foreach ($match->Tplayers as $Tplayer)
<td>{{ $Tplayer->name }} {{ $match->CTplayersID }}</td>
<td>{{ $Tplayer->kills }}</td>
<td>{{ $Tplayer->deaths }}</td>
@endforeach
我知道代码不是很好,但我只是在尝试和学习。
编辑
控制器:
$match->CTplayers = DB::table('match_players AS mp')
->leftJoin('users AS u', 'u.steam_id', '=', 'mp.steam_id')
->where('mp.match_id', '=', $match->match_id)
->where('team', '=', 1)
->select("mp.*", "u.username")
->get('');
刀片:
@foreach ($match->CTplayers as $CTplayer)
<tr>
<td>{{ $CTplayer->name }}</td>
<td>{{ $CTplayer->kills }}</td>
<td>{{ $CTplayer->deaths }}</td>
</tr>
@endforeach
3条答案
按热度按时间lzfw57am1#
您应该尝试加入:我认为这段代码应该可以工作,但我没有测试:
在你看来,你可以得到:
希望这有帮助
fumotvh32#
在match players表的模型中定义关系。
然后在你的控制器里,
我会给你用户名。
um6iljoc3#
你可以试试加入,