2016-12-13 11 views
1

データピッカーに日付が挿入されているデータベースのマーカーを選択する検索フォームを作成します。それはうまく動作しますが、時間を追加するとエラーが発生します。Laravel Query Builder where between

私はそのような何かにクエリをrebuilded:

$datefrom = $request->input('datefrom'); 
$dateto = $request->input('dateto'); 
$timefrom = $request->input('timefrom'); 
$timfrom = $timefrom.':00'; 
$timeto = $request -> input('timeto'); 
$timto = $timeto.':00'; 
$type = $request->input('type'); 

$maps = Map::select('lat','lng',$type,'temp','humidity','date','time') 
       ->where(function($query){ 
        $query->whereBetween('date',array($datefrom,$dateto)) 
        ->whereBetween('time',array($timfrom,$timto)); 
       }) 
       ->get(); 

を、私は、検索フォームにチェック入力すると、私はエラーを取得する:

未定義の変数:$ datefromなどを

どんな助け?

答えて

2

あなたは次のようuseを使用して関数に渡しました:

->where(function($query) use ($datefrom,$dateto,$timfrom,$timto){ 
    $query->whereBetween('date',array($datefrom,$dateto)) 
      ->whereBetween('time',array($timfrom,$timto)); 
}) 

・ホープ、このことができます:あなたが1以上をしたあなたのようなそれらを渡すことができれば

->where(function($query) use ($datefrom){ 
    $query->whereBetween('date',array($datefrom,$dateto)) 
      ->whereBetween('time',array($timfrom,$timto)); 
}) 

+0

これは機能しますが、timfromはより小さく、timetでもdatetoはより大きく、datefromより大きくなければなりません。どのようにそれを変更する方法は、私たちが取得した場合に動作します:から2016-04-04 15:45から2016-04-08 12:12 – Egzan

+0

あなたが何を意味するかわからない@エグザン:(しかし、私はそれが別の素敵な質問だと思う別に投稿するには、OP_Undefined変数の問題があると思います。$ datefromなどはこの投稿によって解決されました。**本当に受け入れることができます(http://meta.stackexchange.com/questions/5234/how - 応答 - 仕事を受け入れる)**そして新しい詳細な説明と別の投稿を進めてください..幸運。 –