2016-02-08 36 views
0

我在Laravel有一個表單。我在這個表格中使用了pagination並且也使用了搜索選項。當我沒有搜索任何東西時,分頁工作正常。如果我搜索的記錄超過10個(我的分頁記錄限制爲10),它在第一頁顯示結果完美,但在第二頁或第三頁顯示整個數據庫的記錄。它忽略了搜索條件。執行搜索後分頁不起作用

控制器代碼:

public function index() 
{ 
    if (Input::has('invoiceNumber')) { 
     $invoiceNumber = Input::get('invoiceNumber'); 
     $invoices = Invoice::where('invoiceNumber','like', '%'.$invoiceNumber.'%')->orderBy('date','desc')->paginate(10); 
    } elseif (Input::has('client')) { 
     $client = Input::get('client'); 
     $invoices = Invoice::where('client','like', '%'.$client.'%')->orderBy('date', 'desc')->paginate(10); 
    } elseif (Input::has('startDate') && Input::has('endDate')) { 
     $startDate = Input::get('startDate'); 
     $endDate = Input::get('endDate'); 
     $invoices = Invoice::whereBetween('date', [$startDate, $endDate])->orderBy('date', 'desc')->paginate(10); 
    } elseif (Input::has('startDate')) { 
     $startDate = Input::get('startDate'); 
     $invoices = Invoice::where('date', $startDate)->orderBy('date', 'desc')->paginate(10); 
    } elseif (Input::has('endDate')) { 
     $endDate = Input::get('endDate'); 
     $invoices = Invoice::where('date', $endDate)->orderBy('date', 'desc')->paginate(10); 
    } else { 
     $invoices = DB::table('invoices') 
      ->join('vehicles', 'invoices.vehicle', '=', 'vehicles.registration') 
      ->select(
       'invoices.*', 
       'vehicles.brand', 
       'vehicles.model', 
       'vehicles.seat', 
       'vehicles.remarks' 
      ) 
      ->orderBy('date', 'desc') 
      ->paginate(10); 
    } 
    return view('invoice.index',compact('invoices')); 
} 

進行搜索我的URL看起來像這樣經過:

http://my-site.com/invoice?invoiceNumber=&client=&startDate=2016-01-01&endDate=2016-02-08 

該搜索後,當我點擊第2頁,網址變成這樣:

http://my-site.com/invoice?page=2 

回答

1

在你的視圖文件,渲染已下面給出如:

{!! $invoices->appends(Input::except('page'))->render() !!} 
+0

非常感謝。它的工作完美。 – smartrahat

2

嘗試使用此波紋管代碼(根據您的需求更改uirement)

return view('invoice.index')->withInvoices($invoices->appends(Input::except('page')); 

希望它爲你工作...

+0

謝謝。這個也很好。但@Jilson托馬斯首先回答,所以我應該接受他的回答。 – smartrahat

0

結果頁面上簡單地使用它。分頁會自動顯示在頁面底部

{!! $invoices->render() !!} 
+0

我之前有過這個。但是我需要對搜索結果進行分頁。無論如何,我已經得到了答案。 – smartrahat