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

时间:2018-07-03 15:27:43

标签: laravel laravel-5.2 laravel-5.1

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

enter image description here

这是我的控制器

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'));
}

1 个答案:

答案 0 :(得分:1)

您可以尝试使用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'));
}

OR

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

$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