Php 如何从Laravel中的数据库中获取用户名?

Php 如何从Laravel中的数据库中获取用户名?,php,mysql,laravel,Php,Mysql,Laravel,我是拉威尔的初学者。我正在尝试按用户steam\u id取出用户名 我的表名为“用户””、“匹配玩家””和“匹配”” users表中有一行名为“steam\u id”和“username” match\u玩家表中有一行“steam\u id”和“match\u id” matches表中还有一行名为“match\u id” 我需要使用match\u idsteam\u idusername 例如: 用户表格: 用户名:Paul | steam_id:0:0:045658 匹配表: 匹配id:d5

我是拉威尔的初学者。我正在尝试按用户
steam\u id
取出用户名

我的表名为“
用户”
”、“
匹配玩家”
”和“
匹配”

users
表中有一行名为“
steam\u id
”和“
username

match\u玩家
表中有一行“
steam\u id
”和“
match\u id

matches
表中还有一行名为“
match\u id

我需要使用
match\u id
steam\u id
username

例如:

用户
表格:

用户名:Paul | steam_id:0:0:045658

匹配
表:

匹配id:d54gwdG566G

匹配球员
表格:`

蒸汽id:0:0:045658 |匹配id:d54gwdG566G

我试过这样的方法:

控制器:

我的看法是:

刀片:

@foreach ($match->CTplayers as $CTplayer)
    <tr>
        <td>{{ $CTplayer->name }}</td>
        <td>{{ $CTplayer->kills }}</td>
        <td>{{ $CTplayer->deaths }}</td>
</tr>
@endforeach
@foreach($match->CTplayer作为$CTplayer)
{{$CTplayer->name}
{{$CTplayer->kills}
{{$CTplayer->死亡}
@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)
                             ->select("mp.*", "u.username")
                             ->get();
在你看来,你可以得到:

@foreach ($match->Tplayers as $Tplayer)
    <td>{{ $Tplayer->username }} {{ $match->CTplayersID }}</td>
    <td>{{ $Tplayer->kills }}</td>
    <td>{{ $Tplayer->deaths }}</td>
@endforeach
@foreach($match->Tplayer作为$Tplayer)
{{$Tplayer->username}{{$match->CTplayersID}
{{$Tplayer->kills}
{{$Tplayer->death}
@endforeach
希望这有帮助

您可以尝试加入

$response = DB::table('match_players')
        ->join('users', 'users.steam_id', '=', 'match_players.steam_id')
        ->where('match_players.match_id', '=', $match->match_id)
        ->select('users.username')
        ->get();

在match players表的模型中定义关系

public function username()
{
    return $this->hasOne('App\Models\User', 'steam_id', 'steam_id');
}
然后在控制器中

$players = DB::table('match_players')->where('match_id', '=', $match->match_id)->where('team', '=', 1)->get();

foreach($players as $value)
{ 
   echo $value->username->username;
}

我会给你用户名。

你应该尝试加入。你应该尝试拉维关系。你尝试过创建模型及其关系吗?编辑了我的第一篇文章。但还是不明白如何去掉用户名?我由你的代码编辑谢谢你!现在明白了!
$response = DB::table('match_players')
        ->join('users', 'users.steam_id', '=', 'match_players.steam_id')
        ->where('match_players.match_id', '=', $match->match_id)
        ->select('users.username')
        ->get();
public function username()
{
    return $this->hasOne('App\Models\User', 'steam_id', 'steam_id');
}
$players = DB::table('match_players')->where('match_id', '=', $match->match_id)->where('team', '=', 1)->get();

foreach($players as $value)
{ 
   echo $value->username->username;
}