2014-06-10 4 views
0

Laravel을 처음 사용하며 버전 4.1을 사용 중입니다.appends() 오류가있는 Laravel 페이지 매김

페이지 매김을 사용하여 데이터베이스를 쿼리하고 appends() 함수를 통해 결과를 실행하여 URL에 매개 변수를 추가하려고합니다. 여기

내가

$query = DB::table('tableName'); 
$query->paginate(50); 
$results = $query->get(); 

을 사용하고있는 코드입니다 그리고 원하는대로 그 실행됩니다. 이제 페이지 매김리스트 (Bootstrap default)를 만들고 다음 코드를 실행하려고하면 에러가 난다.

$pagination = $results->appends(array('key' => 'value'))->links(); 

이것은받은 오류입니다. 멤버 함수에

전화가

는 내가 뭔가를 잘못하고 있어요 알고 아닌 객체()를 추가, 난 그냥 ...

감사를 무엇을 알아낼 수 없습니다 미리, SC

답변

0

나는 appends 함수에 익숙하지 않지만 내가 볼 수있는 오류가 있습니다. 당신이 paginate()을 실행하면 ...

$query = DB::table('tableName'); 
$query->paginate(50); 
$results = $query->get(); 

로 변경

$query = DB::table('tableName'); 

if(Input::has('someinput')) { 
    $query->where('someinput', Input::get('someinput')); 
} 

if(Input::has('otherinput')) { 
    $query->where('otherinput', Input::get('otherinput')); 
} 

$results = $query->paginate(50); 

을 시도 Paginator의 인스턴스가 반환됩니다. 그래도 Paginator에 대한 get() 메소드가 표시되지 않습니다. 그렇다면 어떻게 오류가 발생하지 않았는지 잘 모르겠습니다.

+0

답변 해 주셔서 감사합니다. 원래 쿼리를 당신이 진술하는 방식으로 구성했지만, 값이 설정된 경우에 따라 동적 where 절을 추가해야했습니다. 그 때문에 쿼리를 위의 형식으로 변경했습니다. 이렇게하면 if (isset ($ value)) {$ query-> where(); } 여기서 윤곽을 잡은 방식으로 어떻게 할 수 있는지 알아낼 수있었습니다. – TalkingHeads

+0

쿼리 작성이 완료되면 paginate를 호출하면됩니다. 예를 들어 내 대답을 약간 수정하겠습니다. – user3158900