PHP - Laravel:如何在DB中没有时间重叠的情况下保存

时间:2016-05-03 05:03:20

标签: php mysql sql laravel laravel-5.2

我有一种情况,用户将在数据库中节省时间间隔意味着它不会影响其他时间的时间表。

  

例如:如果教室已经预订了7:00Am到8:00 am用户不能   在这段时间之间节省时间意味着用户无法保存7:30到8:30或   在那个时间间隔内。

如何检查时间间隔并将其保存在laravel中?

这是我的控制器:

 public function postAllocateRoom(Request $request)
    {

            $classRoom = new ClassRoom();           
            $classRoom->department_id=$request->Input(['department_id']);     
            $classRoom->room_id=$request->Input(['room_id']); 
            $classRoom->course_id=$request->Input(['course_id']); 
            $classRoom->day_id=$request->Input(['day_id']); 
            $classRoom->start=$request->Input(['start']); 
            $classRoom->end=$request->Input(['end']);        
            $classRoom->save();            
            return redirect('allocateRoomPage'); 
    }

我的数据库中有two个列,其名称为startend类型为:Time

2 个答案:

答案 0 :(得分:2)

如果要在服务器端进行检查,则应向DB提出额外请求,以便检查时间。

public function get_data() {
    $this->db->select('*');
    $this->db->from('one_month_report');
            $this->db->where('store_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()');
    $query = $this->db->get();
    if ($query->num_rows() > 0) {
        return $query->result();
    } else {
        return FALSE;
    }
}

答案 1 :(得分:0)

您可以检查保存时是否采用间隔,另外,您还可以预先提取现有的间隔,以便在客户端显示它们。