2016-12-26 2 views
0

入力した時刻が既にdbに存在するかどうかをチェックしたいのですか?ここで$ dbsumと$ dbesumで私はstarttime 11:30を入力すると$ dbsumに690を与え、もしendtime 12.30を入力すると$ dbesumに750を与えるような和を計算します。 'c_start'と 'c_end'はすでにdatabase.Nowに存在する合計で、$ dbsumと$ dbesumが 'c_start'と 'c_end'の間に存在するかどうかをチェックしたいと思います。私の質問は以下のようなものです。しかし、それは動作していません。Laravel:WhereBetween節を確認する

$dbstime = explode(':',$request->input('starttime')); 
    $dbetime = explode(':',$request->input('endtime')); 

    $dbstime[0] = $dbstime[0]*60; 
    $dbetime[0] = $dbetime[0]*60; 

    $dbsum = array_sum($dbstime); 
    $dbesum = array_sum($dbetime); 

    $users=DB::table("bookings") 
    ->select("bookdate") 
    ->where([ 
      ['bookdate', '=', $request->input('bookdate')], 
      ['roomname', '=', $request->input('roomname')], 
      ['starttime', '=', $request->input('starttime')], 
      ['endtime', '=', $request->input('endtime')], 
    ->whereBetween('c_start', [$dbsum, $dbesum]) 
    ->whereBetween('c_end', [$dbsum, $dbesum]) 

    ->get(); 

答えて

0
$users=DB::table("bookings") 
    ->select("id") 
    ->where('bookdate', '=', $request->input('bookdate')) 
    ->where('roomname', '=', $request->input('roomname')) 
    ->where(function ($query){ 
    $query->where($dbsum, '>', 'c_start'); 
    $query->orWhere($dbsum, '<', 'c_end'); 
    }) 
    ->orWhere(function($query){ 
    $query->where($dbesum, '>', 'c_start'); 
    $query->orWhere($dbesum, '<', 'c_end'); 
    }) 
    ->get(); 
+0

はまだDD()は何を示している – incorporeal

+0

を動作していない...同じ出力を得ますか? –

+0

dd()がnullを示しています... – incorporeal