2017-06-05 46 views
1

我使用Laravel 5.4的鍵/值之間存在的價值,這是我的使用情況:Laravel 5.4查詢檢查,如果一個數組

我有Lessons列表,每個Lesson與特定User相關並具有datestar_atend_at字段。在允許我添加/編輯Lessons的表單中,我需要進行驗證檢查(我們選擇日期,在表格中開始和結束 ): - 新的Lesson不應在時間範圍內(start_at - >end_at)選擇date期間的另一課程。

所以,我沒有查詢以檢索所有Lessons當前User其中date的(如鍵的陣列(start_at)&值(end_at))=在形式所選擇的日期。

現在我需要檢查我們在窗體中選擇的start_at值是否存在於任何檢索到的Lessons數組記錄的時間範圍內。然後可能會顯示錯誤(此時此時已有教程)。

請幫助,它可能有點不清楚,但我可以進一步解釋,如果你需要。

預先感謝您。

+1

當您添加新課程時,它不應該在該特定用戶的其他課程範圍內?我對嗎 ? –

+0

你可以發佈你的控制器代碼嗎? – whoacowboy

回答

2

基於我對這個問題的理解,下面的代碼應該可以做到。根據您的應用程序更改模型和字段名稱。

protected function store() 
{ 
    $input = request()->all(); 

    $lessons = Lesson::whereDate('date', Carbon::parse($input['date'])) 
     ->where('start_at', '>=', Carbon::parse($input['start_at'])) 
     ->where('end_at', '<=', Carbon::parse($input['start_at'])) 
     ->count(); 

    if ($lessons) { 
     // lesson in exists on this date in the given time frame. 
     // handle error 
    } 

    Lesson::create($input); 

    // handle success 
} 
+0

謝謝,就是這樣。 – dwix