2016-08-03 96 views
0

我想用用戶指定的過濾器執行查詢,然後對結果進行分頁。使用laravel分頁時將URL保留在URL中

在我的控制,我有:

public function index(Request $a) 
{ 


    $queryJobCards = JobCardHead::query(); 

    //Add sorting 

    $queryJobCards->orderBy('DateReqLatest','desc'); 

    //Add Conditions 

    if($a->has('CusJobNum')) { 
     $CusJobNum = $a -> get('CusJobNum'); 
     $queryJobCards->where('CusJobNum','=',$CusJobNum); 
    } 

    if($a->has('Status')) { 
     $Status = $a->get('Status'); 
     $queryJobCards->where('Status','=',$Status); 
    } 

    // get data and Paginate 

    $data = $queryJobCards->Paginate(20); 

    return view('JobsByDate.JobsByDate', compact('data')); 

} 

如果我去/ JobsByDate CusJobNum = 3224,然後我得到的過濾結果,但後來當我嘗試去到下一個頁面我失去了濾波器和? url變成/ JobsByDate?page = 2。

我該如何解決這個問題?

回答

2

插入分頁鏈接時,您需要使用append方法。

{{ $users->appends(['CusJobNum' => 3224])->links() }} 

更新按照您的評論:
您將有一個阿雷['CusJobNum' => 3224 ]Input門面每當過濾器存在。在生成鏈接時,你可以做的是,在你的append方法的參數中插入Input::get('CusJobNum')。這樣,只有在過濾器存在的情況下才會附加。

{{ $users->appends(Input::get('CusJobNum'))->links() }} 
+0

如果未指定過濾器,該怎麼辦? –

+0

他們你可以簡單地使用'{{$ users-> links()}}' – jaysingkar

+0

你可以發佈你的視圖代碼嗎? – jaysingkar