Laravel 如何按月份对检索到的行进行分组?
我正在开发一个应用程序,该应用程序涉及按月对选定行进行分组。我该怎么做呢Laravel 如何按月份对检索到的行进行分组?,laravel,eloquent,Laravel,Eloquent,我正在开发一个应用程序,该应用程序涉及按月对选定行进行分组。我该怎么做呢 $data = Medicals::where("patient_referral.referred_by", "like", "%" . $searchitem . "%") ->leftJoin("patients", "medicals.patients_id", &qu
$data = Medicals::where("patient_referral.referred_by", "like", "%" . $searchitem . "%")
->leftJoin("patients", "medicals.patients_id", "=", "patients.id")
->join("patient_referral", "medicals.trx_id", "=", "patient_referral.trx_id")
->join("tests", "medicals.tests_id", "=", "tests.id")
->groupBy(function (Medicals $item) {
return $item->created_at->format('Y-m');
})
->get();
这就是我得到的错误
错误例外
stripos希望参数1是字符串,对象给定调用groupBy的方式是用于集合,而不是查询。您需要在get之后移动该groupBy,以便尝试对结果集合进行分组
...
->get()
->groupBy(function ($item) {
return $item->created_at->format('Y-m');
});
您调用groupBy的方式是针对集合,而不是查询。您需要在get之后移动该groupBy,以便尝试对结果集合进行分组
...
->get()
->groupBy(function ($item) {
return $item->created_at->format('Y-m');
});
您可以使用groupBy中的原始查询在数据库中执行它:
$data = Medicals::where("patient_referral.referred_by", "like", "%" . $searchitem . "%")
...
->groupBy(DB::raw('DATE_FORMAT(medicals.created_at, "%Y-%m")'))
->get();
您可以使用groupBy中的原始查询在数据库中执行它:
$data = Medicals::where("patient_referral.referred_by", "like", "%" . $searchitem . "%")
...
->groupBy(DB::raw('DATE_FORMAT(medicals.created_at, "%Y-%m")'))
->get();
您遇到的问题是什么,您的查询是否没有按预期工作?您需要在问题中添加更多信息。如果您遇到错误,请将其添加到您的问题中。这是否有帮助:@Tony我已更新了我的问题您遇到了什么问题,您的查询是否如您所期望的那样工作?您需要在问题中添加更多信息。如果您遇到错误,请将其添加到您的问题中。这是否有帮助:@Tony我已更新了我的问题