#1 Collection或Array自定义分页
namespace App\Http\Traits;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Collection;
trait CollectionPaginate {
public function paginate($items, $perPage = 15, $page = null, $options = [])
{
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
if (!array_key_exists('path', $options)) {
$options['path'] = Paginator::resolveCurrentPath();
}
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
}
use CollectionPaginate;
$hotels = $this->paginate($hotels, 10);
$hotels->appends(['city_id' => $city_id, 'city_name' => $city_name, 'date_range' => $date_range]);