我想在使用 Laravel 选择多用户和多项目时搜索数据



当我选择多用户和多项目时,我正在尝试搜索数据,然后我单击搜索按钮,但不幸的是,数据没有显示在报告中。

返回$request

{
"_token": 
"Y293JntHDWb40vqe5hG80ebhoxsxAGaWA00DcAkn",
"user": [
"3",
"4",
"8"
"project": [
"43",
"44",
"45",
"46"
],
"date": "2001-01-20 - 2020-07-02"
}

控制器

public function search(Request $request)
{
//  return $request;
$date = explode(' - ', $request->date);
$auth = Auth::user();
$hourLog = Hourlog::with('project', 
'user');
if ($request->user) {
foreach ($request->user  as  $users) {
$hourLog->where("user_id", $users);
}
} else if ($auth->user_type == 1) {
$hourLog->where("user_id", $auth->id);
}
if ($request->project) {
foreach ($request->project  as  $projects) 
{
$hourLog->where("project_id", $projects);
}
}
$data = [
"hourlogs"  => $hourLog- 
>whereBetween('date', $date)
->orderBy('date', 'desc')
->orderBy('start_time', 'asc')
->get(),
"date"      => $date,
];
return view('cms.reports.report-list', 
$data);
}

问题似乎出在您添加$hourLog->where("user_id", $request->user);的查询上,因为这为每个用户单独添加了条件,并在他们之间and。试试whereIn('user_id', $users)怎么样? project_id-s也是如此。

最新更新