2014-11-08 3 views
0

암이 laravel의 문서를 laravel.Checking에서 원시 쿼리에 대한 매뉴얼 페이지 매김을 만들려고 laravel, 내가 좋아하는 메소드 매기기를 사용하는 것을보고 , $ totalApplicants은, 4); 내가 $ 지원자를 반환 할 때`수동 매김이

을하지만 내 매기기에 요청한 :: 방법을 나에게 모든 레코드가 아닌 4를 제공하지만 난처럼 내 지원자에) (mehod를 링크를 호출하는 경우 : $ applicants-> links() 내보기로 페이지 매김 링크를 반환합니다.

제발 뭐가 잘못 되었나요? 아니면 mehod를 써야하나요? 내 컨트롤러에서이 작품

코드 :

$statement3 = "SELECT * FROM applicant where lga = '$appulga' "; 

     //loop through lga id to build query 
     foreach($LGA_Names as $lga) 
     { 
      $statement3.= " "."OR"." "."lga=". "'".$lga."'"; 
     } 

     //FAcility for User assigned LGA 
     $applicants = DB::Select($statement3); 
     /////////////////////////////////////////////////////////////// 
     $totalApplicants = count($applicants); 
     $perpage = 4; 

     $applicants = Paginator::make($applicants,$totalApplicants,$perpage); 
+0

더 많은 코드를 공유 할 수 있습니까? '$ applicants' 배열 – knpsck

+0

내 컨트롤러에서 공유 된 코드 –

답변

1

매기기 분할 컬렉션, 당신은 수동으로 결과를 처리해야하지 않습니다.

$page = Paginator::getCurrentPage(); // Get the current page for the request 

$limit = 4; 
$offset = $page * $limit; 

// query to get `COUNT(*)` 
// query to get results with `LIMIT $offset, $limit` 

Paginator::make($results, $total, $limit); 

수동으로 SQL 쿼리를 작성하는 것은 비효율적이며 안전하지 않으므로 대신 쿼리 작성기를 사용하십시오.

$pageNumber = Input::get('page', 1); 
$perpage = 4; 


$statement = "SELECT * FROM applicant where lga = '$appulga' "; 
// ... 
$applicants = DB::Select($statement); 


$slice = array_slice($applicants, $perpage * ($pageNumber - 1), $perpage); 
$applicants = Paginator::make($slice, count($applicants), $perpage); 
+0

실제로 내 쿼리는 it.i가 사용자 로그인 ID를 기반으로 lga를 생성 한 다음 시설 데이터베이스에서 시설을 생성 한 다음 신청자 테이블에서 마침내 지원자를 확인하는 것보다 복잡합니다. 그래서 웅변적인 검색어를 사용하는 것이 나의 선택의 여지가 없습니다. –

1

당신은 모든 레코드를 얻은, 당신은 이런 식으로 뭔가를 시도 할 수 있습니다.

/Illuminate/Pagination/Paginator 개체 만 반환하고 응답으로 반환하거나 보려는 경우 toArray 메서드에 정의 된 배열 요소를 반환합니다.

1

매기기는 매김 링크를 계산, 그래서 쿼리에 영향을주지 않습니다 당신이 $applicantsPaginator::make를 호출하기 때문에

$query = DB::table('applicant')->where('lga', $appulga); 

foreach ($LGA_Names as $lga) 
{ 
    $query->orWhere('lga', $lga); 
} 

$applicants = $query->paginate(4);