2017-07-27 29 views
0

基本上我有3個過濾器。日期範圍,賬戶代碼,rccode。我如何能夠使用兩個或更多參數製作過濾器?它們每個都可以是空白的。兩個或多個過濾器請求Laravel 5.3

<select class="form-control input-sm " name="account_code"><optgroup label="No Category"> 
    <option></option> 
    @foreach($accountCodes as $accountCode) 
    <option style="width:500px; font-size: 11px;" value="{{$accountCode->ac_code}}">{{$accountCode->ac_code}} - {{$accountCode->ac_description}} </option> 
    @endforeach 
</select> 
<select class="form-control input-sm" name="responsibility_center"> 
    <option></option> 
     @foreach($rcCodes as $rcCode) 
    <option style="width:500px; font-size: 11px;" value="{{$rcCode->rc_code}}">{{$rcCode->rc_code}} - {{$rcCode->rc_acronym}} </option> 
     @endforeach 
</select> 
<input class="form-control input-sm" type="date" value="" name="dt_from"> 
<input class="form-control input-sm" type="date" value="" name="dt_to"> 

控制器:

public function dashboard(Request $request){ 
     $s = $request->input('s'); 
     $disbursement = Disbursement::search($s) 
     ->paginate(20); 
    } 

請幫我找到這個最佳做法/解決方案。謝謝!

回答

0
public function dashboard(Request $request){ 
    $disbursements = Disbursement::query(); 
    if($request->input('account_code')){ 
     $disbursements = $disbursements->where('account_code',$request->input('account_code')); 
    } 
    if($request->input('responsibility_center')){ 
     $disbursements = $disbursements->where('responsibility_center',$request->input('responsibility_center')); 
    } 
    if($request->input('dt_from')){ 
     $disbursements = $disbursements->where('dt_from','>=',$request->input('dt_from')); 
    } 
    if($request->input('dt_to')){ 
     $disbursements = $disbursements->where('dt_from','>=',$request->input('dt_from')); 
    } 
    $disbursements = $disbursements->paginate(20); 
    return view('dashboard',compact('disbursements')); 
}