Laravel: 为每个用户在一行中显示多条数据

Laravel: display multi data in one row for every user

如何通过id用户在一行中使用外键显示多个数据,例如: 我有多张票的用户,我需要在一栏中显示每个用户的票号。

这是我的控制器

public function followticket()
{
    $data = DB::table('tickets')
        ->join('users', 'users.id', '=', 'tickets.user_id')
        ->select('users.*', 'tickets.*')->get();

    return view('Admin.suivi-tickest',compact('data'));
}

你可以尝试与laravel模型关系

用户模型

public function tickets(){
  return $this->hasMany('App\Ticket', 'user_id');
}

控制器

public function followticket()
{
    $users = User::withCount('tickets')->get();
    return view('Admin.suivi-tickest',compact('users'));
}

如果使用查询生成器,那么您可以这样尝试

$users = DB::table('users')
            ->join('tickets', 'users.id', '=', 'tickets.user_id')
            ->select('users.*', DB::raw('count(*) as tickets_count'))
            ->groupBy('id')
            ->get();

模板

@foreach($users as $user)
   {{$user->id}} {{$user->email}} {{$user->tickets_count}}
@endforeach