2016-12-06 8 views
1

私は予約アプリケーションに取り組んでいます。ユーザから開始時刻と終了時刻(datetime)を取得し、この期間(開始&終了)がデータベース列(begin &終了)と交差するかどうかを確認するため、Input['start']Input['end']データベースと、私はCarbon::create($inputstart)->between($start ,$end));を使用しますが、それはalwayesがerroresを与える「予期しないデータ」&「後続データ」ここLaravel Carbon、datetimeを比較するための書式設定方法

は、私はまた、データベース列を宣言

public function store(Request $request,$yard,$court) 
{ 
    $start =$request->input("start"); 
    $end =$request->input("end"); 
    $courtCalendar = CalendarEvent::where('court_id',$court)->get(); 
    $start= Carbon::parse($start); 
    $end = Carbon::parse($end); 
    foreach ($courtCalendar as $booked) {  
     $bend= Carbon::parse($booked->end); 
     $bstart= Carbon::parse($booked->start); 
     dd(Carbon::create($end)->between($bstart ,$bend)); 
     if (!Carbon::create($start)->between($bstart ,$bend)){ 
      if (!Carbon::create($end)->between($bstart ,$bend)) { 
    $calendar_event = new CalendarEvent(); 
    $calendar_event->user_id   = Auth::user()->id; 
    $calendar_event->court_id   = $court; 
    $calendar_event->title   = $request->input("title"); 
    $calendar_event->start   = $start; 
    $calendar_event->end    = $end; 
    $calendar_event->status   = 0; 
    $calendar_event->save(); 
    return redirect()->back() 
    ->with(['header'=>'Success!','class' =>'alert alert-success','message'=> 'booked successfully.', 
     'calendar'=>$calendar_event]); 
      }else 
      {return redirect()->back() 
       ->with(['header'=>'Warning!','class' =>'alert alert-warning','message'=> 'cannot book at this time end time is occupied']);} 
     }else 
      {return redirect()->back() 
       ->with(['header'=>'Warning!','class' =>'alert alert-warning','message'=> 'cannot book at this time start time is occupied']);} 
    } 
} 

入力をチェックし、保存するためのコントローラのメソッドでありますモデルの日付で

protected $dates = ['start', 'end']; 

私はCarbonフォームとデータベース "datetime"からdatetime形式を渡してCarbonが "between"比較を行う方法を教えてください。

答えて

5

あなたは、その後、$側は$ BSTARTと$曲がりの間にあるかどうかを判断するために欠けている場合は、すでに、ラインだから、

$end = Carbon::parse($end); 

と$エンド変数のためのあなたのカーボンインスタンスを作成しているように見えますこれは、彼らがすべてのカーボンオブジェクトであることを確認するdd($bstart)dd($bend)とともに、dd($end)動作しない場合は、あなたの行は、この

$end->between($bstart, $bend); 

ようになりたいと思うだろう。

+0

ありがとう@MMMTroy、それは働いた –

+1

ありがとう[MMMTroy](http://stackoverflow.com/a/41002733/3452348)このsuperbeの答えです。 @ BeshoyTamryは[受け入れられた回答](http://meta.stackexchange.com/a/5235/294451)として彼に賞を与えてください。 – Zl3n

関連する問題