2017-10-18 30 views
2

[加減問題]使用日期選擇器來獲得與Laravel集體

下方的搜索結果是與數據選擇器搜索數據的代碼。

在之前/頭

<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
<script type="text/javascript"> 
    $("#datepicker_from").datepicker({ 
     changeMonth: true, 
     changeYear: true, 
     format: 'DD-MM-YYYY', 
     startDate: '01-10-2017', 
     onSelect: function (dateText) { 
     $("#datepicker_to").datepicker('option', 'minDate', dateText); 
     } 
    }); 
    $("#datepicker_to").datepicker({ 
     changeMonth: true, 
     changeYear: true, 
     format: 'DD-MM-YYYY', 
     endDate: '01-11-2017', 
    }); 
</script> 

Laravel-集體代碼

{!! Form::open(array('class' => 'form', 'method' => 'get', 'url' => url('/login_history_search'))) !!} 
{{ Form::input('text', 'datepicker_from', ['id' => 'datepicker_from']) }} 
{{ Form::input('text', 'datepicker_to', ['id' => 'datepicker_to']) }} 
{!! Form::submit('Search', ['class' => 'btn btn-success']) !!} 
{!! Form::close() !!} 

控制器

public function login_history_search(Request $request) 
    { 
    $histories = DB::table('loginhistories') 
    ->where('created_at','>=', Carbon::parse($request->input('datepicker_from'))->format('Y-m-d')) 
    ->orWhere('created_at','<=', Carbon::parse($request->input('datepicker_to'))->format('Y-m-d')) 
    ->get(); 
    return view('profiles.login_histories', ['histories' => $histories]); 
    } 

loginhistories表結構

enter image description here

最後,查詢結果是相同的所有數據。 讓我知道如何修改代碼以從服務器獲取正確的搜索結果。

+0

請問您可以添加路線嗎? – Maraboc

+0

好吧,只需添加路由即可查看,因爲MethodNotAllowedHttpException與它們有關:) – Maraboc

+0

@Maraboc,我認爲我的方法是錯誤的。 DateRange Picker似乎無法在我的數據庫中查詢。 原因是存儲在DataRange和服務器中的日期值彼此不同。這樣對嗎?如果是的話,我只是嘗試調整「日期選擇器」:) – Magnetic

回答

0

在控制器中宇應該用請求得到這樣的輸入文本值:

public function login_history_search(Request $request) 
{ 
    $daterange = 
    $histories = DB::table('loginhistories') 
    ->where('last_login_at', '>=', $request->input('daterange_from')) 
    ->orwhere('last_logout_at', '<=', $request->input('daterange_to')) 
    ->get(); 
    dd(request($histories)); 
    return view('profiles.login_histories', ['histories' => $histories]); 
} 
+0

嗨;){!! Form :: open(array('class'=>'form'))!!} {{Form :: input('text','daterange',「01/10/2017 - 01/11/2017」, ['id'=>'datepicker'])}} {!! Form :: submit('Search',['class'=>'btn btn-success'])!!} 如何使用提交按鈕獲取代碼中的搜索結果?總是非常感謝。 – Magnetic

+0

檢查更新後的答案;) – Maraboc

+0

使控制器獲得輸入日期範圍值有點困難:( – Magnetic

0

最後,我通過下面的代碼正確的結果。 :)謝謝@Maraboc!

核心思想是使用whereBetween查詢構建器。

public function login_history_search(Request $request) 
    { 
    $histories = DB::table('loginhistories') 
    ->whereBetween('last_login_at', array(
    (Carbon::parse($request->input('datepicker_from'))->format('Y-m-d')), 
    (Carbon::parse($request->input('datepicker_to'))->format('Y-m-d')) 
    ) 
    ) 
    ->get(); 
    return view('profiles.login_histories', ['histories' => $histories]); 
    } 
相關問題