2016-12-13 7 views
1

datapicker에 날짜가 삽입 된 데이터베이스의 마커를 선택하는 검색 양식을 만듭니다. 그건 잘 작동하지만, 시간을 추가하면 오류가 발생합니다. 내가 검색 폼에 확인 입력하면Laravel Query Builder wherebetween

$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(); 

내가 얻을 오류 :

정의되지 않은 변수 :

나는 그런 일에 쿼리를 rebuilded $ datefrom 등

어떤 도움이 필요합니까?

답변

2

당신이 좋아하는 use을 사용하여 함수에 전달했습니다 :

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

개 이상을 한 경우 당신은 그들이 좋아 전달할 수 :이 도움이

->where(function($query) use ($datefrom,$dateto,$timfrom,$timto){ 
    $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

무슨 뜻인지 잘 모르겠네 @Egzan :(하지만 그게 또 다른 좋은 질문이라고 생각해. 별도로 게시하려면 OP_Undefined 변수에 문제가 있다고 생각합니다. $ datefrom 등의 오류가이 게시물에 의해 해결되었습니다 ** [수락 할 수 있음] (http://meta.stackexchange.com/questions/5234/how -does-accepting-an-answer-work) ** 그리고 새로운 자세한 설명으로 다른 글을 올리십시오. 행운을 빌어 요. –