0
我正在使用此package在Laravel 5.4中使用Elastic Search進行研究。如何使用會話通過的變量創建分頁。
我有一個屏幕爲用戶履行搜索要求。使用這種方法,我正在驗證哪些字段已填充,並創建了將在ES中進行搜索的查詢。
public function search(Request $request)
{
$searchParams = ['vehicle', 'year_min', 'year_max', 'mileage_min', 'mileage_max', 'exchange', 'keyword', 'optionals', 'phone', 'daterange'];
$query = ES::type("ads");
foreach($searchParams as $param) {
if($request->has($param)) {
if($param == 'vehicle') {
$results = $query->where("vehicle", "like", $request->vehicle);
}
if($param == 'keyword') {
$results = $query->where("description", "like", $request->keyword);
}
if($param == 'year_min') {
$results = $query->where("year", ">=", intval($request->year_min));
}
if($param == 'year_max') {
$results = $query->where("year", "<=", intval($request->year_max));
}
if($param == 'mileage_min') {
$results = $query->where("mileage", ">=", intval($request->mileage_min));
}
if($param == 'mileage_max') {
$results = $query->where("mileage", "<=", intval($request->mileage_max));
}
if($param == 'exchange') {
$results = $query->where("exchange", "like", $request->exchange);
}
if($param == 'optionals') {
$results = $query->where("optionals", "like", serialize($request->optionals));
}
if($param == 'phone') {
$results = $query->where("phone", "exists", true);
}
}
}
$all_leads = $results->orderBy("created_at", "desc")->paginate(15);
$all_leads->setPath('/dashboard/crawler/resultados');
Session::put('all_leads', $all_leads);
return redirect()->action('DashboardAdmin\[email protected]');
}
掛載查詢後,我調用另一個方法來呈現結果並按會話傳遞數組。
$all_leads = $results->orderBy("created_at", "desc")->paginate(15);
$all_leads->setPath('/dashboard/crawler/resultados');
Session::put('all_leads', $all_leads);
return redirect()->action('DashboardAdmin\[email protected]');
當我搜索通過了會議的結果,併發送至視圖的PAGINATE不起作用列表僅在第一頁的結果,如果我點擊分頁按鈕它改變了URL,但不改變記錄。
public function results()
{
$all_leads = Session::get('all_leads');
return view('dashboard_admin.prospecting_lead.index', compact('all_leads'));
}