用户搜索某公里半径范围内的个人资料,即50公里我运行的函数,它使用纬度/经度值来检索结果(这是在方形内的粗略搜索而不是直线距离),然后我对结果进行分页。
$query = $this->filterNearby($query, $geocode);
$query = $query->paginate(10);
但是对于每个查询,我需要使用大圆公式运行适当的距离(以获得准确的50公里)并且搜索的人可能只愿意从他们的位置旅行20公里,所以我需要从查询中删除这些。
我曾尝试在分页之前执行$query = $query->get()
,然后为每个分区删除项目,但分页不起作用。我试图创建一个新的Paginator,但我不确定这是如何工作到视图的?
最新代码:
if (\Request::segment(2) == "jobs")
{
$query = $this->searchJob($search_strategy);
$query = $this->filterNearbyJob($query, $geocode);
$query = $this->filterJob($query);
$query = $query->get();
// Foreach function to go here to get accurate distance between two points and remove from query results
$paginate = new Paginator($query, count($query), 10);
$category = $this->getCategoryURL($search_strategy);
$sub_categories = ServiceSubCategory::where('sub_category_url', '=', $search_strategy)->first();
return view('search.job')
->with('category', $category)
->with('sub_categories', $sub_categories)
->with('search_results', $paginate);
}
答案 0 :(得分:0)
您无法在get
之前致电paginate
,事实上,您只能致电其中一位。您应该使用数据库查询进行过滤,或考虑制作Illuminate\Pagination\Paginator
或Illuminate\Pagination\LengthAwarePaginator