Php SQL Laravel GroupBy并显示所有记录

Php SQL Laravel GroupBy并显示所有记录,php,mysql,sql,laravel,Php,Mysql,Sql,Laravel,我的数据库表具有以下结构: 职员身份证 列id 资料 我试图找到一种方法,以便查看给定员工id的所有列id和数据字段 例如,可能有6条记录的staff_id为2,33条记录的staff_id为1 现在我需要得到这个,这样我就有了一个数组,我可以循环通过它来提供我所有的数据 因此,在PHP中,类似于: foreach($staffs as $staff) { foreach($staff->datas as $data) { echo $data->column

我的数据库表具有以下结构:

职员身份证 列id 资料

我试图找到一种方法,以便查看给定员工id的所有列id和数据字段

例如,可能有6条记录的staff_id为2,33条记录的staff_id为1

现在我需要得到这个,这样我就有了一个数组,我可以循环通过它来提供我所有的数据

因此,在PHP中,类似于:

foreach($staffs as $staff) {
    foreach($staff->datas as $data) {
        echo $data->column_id . " - " . $data->data . "<br />";
    }
    echo "<hr />";
}
foreach($staff作为$staff){
foreach($staff->data as$data){
echo$data->column_id.“-”$data->data.“
”; } 回声“
”; }
我看过GroupBy,但分组时似乎只返回一个结果

我使用的是Laravel。

员工模型

  public function datas(){
      return $this->hasMany(DataTable::class,'staff_id');
   }
现在您可以使用:

$staffs=Staff::with('datas')->get(); // get data with relltionships

foreach($staffs as $staff) {
    foreach($staff->datas as $data) {
        echo $data->column_id . " - " . $data->data . "<br />";
    }
    echo "<hr />";
}
$Staff=Staff::with('datas')->get();//使用relltionships获取数据
foreach($staff作为$staff){
foreach($staff->data as$data){
echo$data->column_id.“-”$data->data.“
”; } 回声“
”; }
使用
照明\Support\Collection
您可以:

$staffs->groupBy(function ($staff) {
    return $staff->staff_id;
});

假设我有一个列表表,下面是结构

lists
-------

id | staff_id | column_id (int) | data(string) | 
现在我创建ListController并编写getstaff()方法,该方法返回staff\u id的特定数据

 public function getstaff($id){
     $staffs = List::where('staff_id','=',$id)->get();
     return $staffs;
   }
现在你可以在刀片上显示

@foreach($staffs as $staff)
    <li>{{$staff->column_id}}</li>
    <li>{{$staff->data}}</li>
   @endforeach
@foreach($staff作为$staff)
  • {{$staff->column_id}
  • {{$staff->data}
  • @endforeach
    $staff
    实例照亮\Support\Collection
    ?如果我不想获得一个特定的staff\u id并将它们全部作为嵌套数组来获取,该怎么办?Hey只是想看看您对此是否有任何想法:这使得每个循环需要两个foreach是吗?那么,如果我想通过使
    $staff[$data->column\u id]=$data->data来扁平化每个$staff,该怎么办我可以用嵌套的for循环来实现这一点,但我想知道是否有一种方法可以不用嵌套的for循环来实现这一点?谢谢