Laravel 如何使用;groupBy“;与拉威尔的关系

Laravel 如何使用;groupBy“;与拉威尔的关系,laravel,eloquent,Laravel,Eloquent,我需要按日期分组。问题是有两个表“看板”和“apontamentos” 类似于:看板::with('apontamentos')->get()->groupBy('dataApontamento'); 属性错误 我已经尝试了一切,在模型中使用“groupBy”。需要知道如何在控制器中分组并执行“foreach” 最接近我的是这样的: $days = Kanban::with('apontamentos')->get()->groupBy(function ($val) {

我需要按日期分组。问题是有两个表“看板”和“apontamentos”

类似于:看板::with('apontamentos')->get()->groupBy('dataApontamento'); 属性错误

我已经尝试了一切,在模型中使用“groupBy”。需要知道如何在控制器中分组并执行“foreach”

最接近我的是这样的:

$days = Kanban::with('apontamentos')->get()->groupBy(function ($val) {
      return $val->dataApontamento;
  });
  // dd($days);

  foreach ($days as $day => $appointments) {
    echo '<h2>'.$day.'</h2><ul>';
    foreach ($appointments as $appointment) {
        echo '<li>'.$appointment->atividade.'</li>';
    }
    echo '</ul><br>';
  }
$days=Kanban::with('apontamentos')->get()->groupBy(函数($val){
返回$val->dataApontamento;
});
//dd(天);
foreach($day的天数=>$appointment){
回音“.$day.”
    ; foreach($预约作为$预约){ 回显“
  • ”.$appointment->atividade.
  • ”; } 回音“

”; }
更清楚的例子:

看板

标题:等待服务

Apontamentos

日期05/05

项目1

项目2

项目3

日期05年6月

项目1

项目2

项目6

项目7

看板

标题:待定

apontamentos

日期:2005年8月

项目9

项目8

项目4

看板

标题:看板

标题:等待服务

apontamentos

日期:2005年9月

项目1

项目1

项目1

项目1

10/05

项目1

项目1

项目1

项目1试试这个

Kanban::with(['apontamentos' => function($query){
    $query->groupBy('dataApontamento');
}])->get();

感谢@Alex的回复,给出了这个错误。SQLSTATE[42000]:语法错误或访问冲突:1055“company.apontamentos.id”不在GROUP BY中(SQL:select*from
apontamentos
其中
apontamentos
在(7,10,11,12)GROUP BY
dataApontamento
中)您必须将company.apontamentos.id放入组中,或者您必须告诉laravel对数据库使用strict mode false,您必须转到config/database,并在mysql中放入此“strict”=>false相同的错误
'prefix'=>'','prefix_index'=>true',strict'=>false,'engine'=>null,
如果您的mysql使用SELECT@@GLOBAL.sql_模式使粘贴模式失效,请检入数据库,您可以通过SET@GLOBAL.sql_模式=''来更改它。如何更好地解释它?我使用xampp