How to use raw sql Pagination in Laravel5?

后端 未结 2 1966
逝去的感伤
逝去的感伤 2020-12-20 06:17

This is my Controller code:

$sql = \"SELECT *,earth_distance(ll_to_earth(team.lat, team.lng), ll_to_earth(23.1215939329,113.3096030895)) AS distance FROM tea         


        
2条回答
  •  一整个雨季
    2020-12-20 06:54

    Another option if you are trying to paginate dynamic columns that maybe you were processing calculations on for reporting is to create a sort method and pass in your array and params:

    public function sort($array_of_objects, $sort_by=null, $order, $page) 
    {
        $collection = collect($array_of_objects);
        if ($sort_by)
        {
    
            if ($order=='desc') {
                $sorted = $collection->sortBy(function($role) use ($sort_by)
                {
                    return $role->{$sort_by};
                })->reverse();
            } else if ($order=='asc') {
                $sorted = $collection->sortBy(function($role) use ($sort_by)
                {
                    return $role->{$sort_by};
                });
            }
        } else {
            $sorted = $collection;
        }
    
        $num_per_page = 20;
        if (!$page) {
            $page = 1;
        }
    
        $offset = ( $page - 1) * $num_per_page;
        $sorted = $sorted->splice($offset, $num_per_page);
    
        return  new Paginator($sorted, count($array_of_objects), $num_per_page, $page);
    
    }
    

提交回复
热议问题