由Eloquent Query Foreach组成的视图

时间:2017-05-10 07:20:36

标签: laravel

我想将结果分组为" licencie_id"在我的搜索功能上但是当我把" Group By"条件。

  

此集合实例上不存在Property [id]。

我这样做了:

$designations = $query->paginate(10)->groupBy('licencie_id');

当我调试时,我得到:

Collection {#979 ▼
  #items: array:3 [▼
    125 => Collection {#1010 ▼
      #items: array:2 [▼
        0 => RencontreOfficiel {#975 ▶}
        1 => RencontreOfficiel {#1006 ▶}
      ]
    }
    131 => Collection {#998 ▼
      #items: array:1 [▶]
    }
    134 => Collection {#1013 ▶}
  ]
}

我现在想在我的视图中显示这个集合,如:

@foreach($designations as $designation)
                                <tr>
                                    <td><a href="{!! route('designation.show', $designation->id) !!}">{{$designation->id}}</a></td>
                                    <td>{{$designation->rencontre->compet->categorie_compet->lb_categorie_compet}}</td>
                                    <td>{{$designation->rencontre->compet->lb_compet}}</td>
                                    <td>{{$designation->fonction_officiel->lb_fonction}}</td>
                                    <td>{{$designation->rencontre->dt_rencontre}} {{$designation->rencontre->time_rencontre}}</td>
                                    <td>{{$designation->rencontre->equipe_domicile->lb_equipe}}</td>
                                    <td>{{$designation->rencontre->equipe_visiteur->lb_equipe}}</td>
                                    <td>{{$designation->licence->lb_nom}} {{$designation->licence->lb_prenom}}</td>
                                    <td>{{$designation->bareme->lb_bareme}}</td>
                                    <td>{{$designation->nm_distance}}</td>
                                    <td>{{$designation->mt_indemnite_km}}</td>
                                    <td>{{$designation->bareme->mt_prime}}</td>
                                    <td>{{$designation->statut_officiel}}</td>
                                </tr>
                            @endforeach

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您查询构建器出错了,Eloquent ORM语句必须在分页符之前:

$designations = $query->groupBy('licencie_id')->paginate(10)

顺便说一句,阅读Laravel pagination docs,你可以找到:

  

目前,使用groupBy语句的分页操作不能   由Laravel有效执行。如果你需要使用groupBy   在分页结果集中,建议您查询数据库   并手动创建一个分页器。

这意味着分页加上一个组合不太好,如果你想跳过不想要的行为,我几乎不建议你一起跳过它们。