首页 > 解决方案 > Laravel 日期搜索功能

问题描述

如何添加日期搜索,如 DATE_FROM 和 DATE_TO?我已经有使用搜索框和下拉过滤器到我的刀片模板的现有控制器,现在如何添加日期范围过滤器。以及如何将它添加到刀片中的日期选择器中

注意: 在我的数据库中,我只有默认 created_at 列

控制器:

public function index(Request $request)
{

    $search=$request->input('search'); 

    if(request()->has('lead_status')){
        $leads=Lead::where('lead_status', request('lead_status'))
        ->paginate(5)
        ->appends('lead_status',request('lead_status'));
    }
    else{

        $leads=Lead::orderBy('created_at','desc')->search($search)->paginate(5);

    }

    return  view ('leads.index')->with('leads',$leads);

}

查看日期选择器

 <div class="col-sm-4 form-group">
    <label>FROM</label>
    <input type="date"  name="" value="" class="form-control">
                               
</div>
<div class="col-sm-4 form-group">
    <label>TO</label>
    <input type="date"  name="" value="" class="form-control">
                               
</div>

标签: phplaravel

解决方案


使用日期,您可以按日期搜索,并且可以在这里Laravel进行更多搜索

Lead::whereDate('created_at', '=', date('Y-m-d'))->get();

在哪里

Lead::whereBetween('created_at', [date('Y-m-d', strtotime($input['from'])), date('Y-m-d', strtotime($input['to']))])->get();

您的解决方案

$leads = Lead::query();
    if($request()->has('lead_status')){
        $leads = $leads->where('lead_status', $request('lead_status'));
    }
    if($request()->has('from') && $request()->has('to')){
    {
        $from_date = date('Y-m-d', strtotime($request()->has('from')));
        $to_date = date('Y-m-d', strtotime($request()->has('to')));
        $leads = $leads->whereBetween('created_at', [$from_date, $to_date]);
    }

    $leads = $leads->orderBy('created_at','desc')->paginate(5);

推荐阅读