Mysql Laravel上的数据库筛选器问题
我用的是拉威尔 下面提到的是我的db表列之一 : 我的代码是 我的控制器 : 如果我使用created at,它会工作Mysql Laravel上的数据库筛选器问题,mysql,database,laravel,Mysql,Database,Laravel,我用的是拉威尔 下面提到的是我的db表列之一 : 我的代码是 我的控制器 : 如果我使用created at,它会工作 $participants = Participant::Where('created_at', '>=', $start_date) ->where('created_at', '<=', $end_date); $participants=Participant::Where('created_at','>=',$start_date)
$participants = Participant::Where('created_at', '>=', $start_date)
->where('created_at', '<=', $end_date);
$participants=Participant::Where('created_at','>=',$start_date)
->其中('created_at'、'meta->start_time'、'>='、$start_date)
->其中('data->meta->start_time','使用whereBetween
提示方法:
$start_date = $request->has('startDate') ? $request->get('startDate') : Carbon::now()->subDays(30)->format('m/d/Y');
$end_date = $request->has('endDate') ? Carbon::parse($request->get('endDate'))->addDays(1)->format('m/d/Y') : Carbon::now()->addDays(1)->format('m/d/Y');
$participants = Participant::whereBetween('start_time', [$start_date , $end_date])->get(); // or ->first() ur choice.
更详细地说我已经测试了您的代码,我认为您应该更改日期格式,您应该收到与列值格式相同的startDate和endDate表单请求。例如,您的数据库中有类似“start_time”的开始时间:“2019-09-06”。因此,在比较时使用相同的日期格式
以这种方式测试代码
$start_date = Carbon::parse('2019-09-06')->format('Y-m-d');
$end_date = Carbon::parse('2019-09-10')->format('Y-m-d');
您将收到响应,但如果使用以下格式,则不会收到任何响应
$start_date = Carbon::parse('2019-09-06')->format('m/d/Y');
$end_date = Carbon::parse('2019-09-10')->format('m/d/Y');
您的查询很好。只需确保您的json列名是data
$participants = Participant::where('data->meta->start_time', '>=', $start_date)
->where('data->meta->start_time', '<=', $end_date)->get();
$participants=Participant::where('data->meta->start\u time','>=',$start\u date)
->其中('data->meta->start_time','数据库中的json列名是什么?是数据吗?
$start_date = Carbon::parse('2019-09-06')->format('Y-m-d');
$end_date = Carbon::parse('2019-09-10')->format('Y-m-d');
$start_date = Carbon::parse('2019-09-06')->format('m/d/Y');
$end_date = Carbon::parse('2019-09-10')->format('m/d/Y');
$participants = Participant::where('data->meta->start_time', '>=', $start_date)
->where('data->meta->start_time', '<=', $end_date)->get();