我只想在这种特定情况下寻求帮助。因此,在我的应用程序中,我们希望有一个全局搜索功能,您可以在其中放置 1 个字符串,然后我们必须使用 laravel eloquent 在数据库中的多种情况下搜索该字符串,但是这已经成为问题,因为我有多个 where has 然后我有withcount(我稍后会展示)。有人可以帮我解决这个问题吗?将不胜感激
这是代码
$result = [];
$sort_order = "DESC";
$post_param = $request->json()->all();
$filters = $post_param['filters'];
if($post_param['sortOrder'] > 0)
{
$sort_order = "ASC";
}
$financing_applications = $this->financing_application->model();
$data = $financing_applications::with('financing_application_data.business_type','financing_product_approval.financing_product')->withCount('financing_application_attachments as attachment');
foreach($filters as $key => $filter){
$value = $filter['value'];
if($value != ""){
switch($key){
case "start_date_range":
$data = $data->where('submission_date','>=',$value);
break;
case "end_date_range":
$data = $data->where('submission_date','<=',$value);
break;
case "status":
$data = $data->where($key,"LIKE","%$value%");
break;
case "attachment_count":
$data = $data->having('attachment_count','=',$value);
break;
case "company_name":
case "telephone":
});
}
}
}
因此,在这种情况下,我的预期结果是能够使用所有案例并将其组合到 switch 语句中的“全局”案例中。
有没有人有同样的问题并有解决方案?上面的全局不起作用,因为 where 和 whereHas 应该是 AND 不是 OR...我一直在寻找解决方案,但它太复杂了,我不知道这个问题的确切关键字
这是您需要的一些信息
"laravel/lumen-framework": "5.3.*"
更新:如果你们中的一些人误解了我的问题,我很抱歉,所以问题仅在于“全局”案例,现在与另一个案例在于“whereHas”语法来过滤关系。如果全局应该能够组合“Where”和“WhereHas”,我已经做到了,但是因为没有“orWhereHas”(据我所知),所以它将返回空,因为它被识别为“AND”语句
神不在的星期二