madala's avatar

pagination not working

search query

public function getAgencyContractsList($n, $searchKey)

{


    /** @var TYPE_NAME $query */
    $query = DB::table('wdacs_inv_agcy_contract');
    if ($searchKey != '') {
        $query = $query->whereRaw("(wdacs_inv_agcy_contract.bfy LIKE '%$searchKey%' OR
        wdacs_inv_agcy_contract.ecaps_unit_cd LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.grant_cd LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.program_cd LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.contract_type LIKE '%$searchKey%' OR 
         wdacs_inv_agcy_contract.funding_source LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.agency_nm LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.agency_cd LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.caljobs_agcy_nm LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.report_name LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.geo_region LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.sup_dist LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.doc_num LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.doc_type_cd LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.doc_creation_dt LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.doc_submit_dt LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.ttl_budget_am LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.ttl_approved_am LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.ttl_pending_am LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.srvc_start_dt LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.srvc_end_dt LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.cur_status LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.po_num LIKE '%$searchKey%' OR
         wdacs_inv_agcy_contract.close_dt LIKE '%$searchKey%' )");

    }



    return $query->paginate($n);


}

controller method

public function agencyContractLists()

{

    $pageRow = \Request::get('pageRow');
    $search = \Request::get('search');
    $pageRow = ($pageRow) ? $pageRow :20;
    $agencyContractLists = $this->contractRepository->getAgencyContractsList($pageRow,$search);

    $resultArr = array_merge(array('agencyContractLists'=>$agencyContractLists),
        array('pageRowsArr'=> array(1,5,10,20,30,40,50)),array('pageRow'=>$pageRow),array('search'=>$search));

   // dd($resultArr);
    return view('agencyContracts.agencyContractLists',compact('resultArr'));


}

i use this to show pagination links

{!! $agencyContractLists->links() !!}

my issue is there are total 30 records when 1 select the rows to display now i selected 1 to display the pagination shows 30 pages(links) its fine but

when i click the second page it should display one row in that page but it displays all rows. and here pagination link only shows 2 pages now.

can you guys help me with this.

0 likes
2 replies
willvincent's avatar
Level 54

So it's not so much that pagination isn't working, but rather that the pagination links are not including your other parameters for number of results per page & search...

Try this in your view for display of the pagination links:

{!! $agencyContractLists->appends(Input::except('page'))->links() !!}

That should ensure any other get parameters are included in the links along with the page param provided by the pagination handler.

So you'll end up with pagination links something like this:

<a href="/something?page=3&search=foo&pageRow=1">3</a>

Please or to participate in this conversation.