Last active
April 13, 2023 15:12
-
-
Save nellytadi/55d3e7fdde472ba60850f554352c1825 to your computer and use it in GitHub Desktop.
Manual Paginate In Laravel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Http\Controllers\Api; | |
use App\Model; | |
use Illuminate\Http\Request; | |
use App\Http\Controllers\Controller; | |
use Illuminate\Pagination\LengthAwarePaginator as Paginator; | |
class TestController extends Controller | |
{ | |
public function test(Request $request){ | |
$array = Model::select('id','organisation_name','company_status','created_at','updated_at')->where('publish', 1)->limit(15)->get(); | |
$total=count($array); | |
$per_page = 5; | |
$current_page = $request->input("page") ?? 1; | |
$starting_point = ($current_page * $per_page) - $per_page; | |
$array = array_slice($array, $starting_point, $per_page, true); | |
$array = $array->toArray(); | |
$array = array_slice($array, $starting_point, $per_page, true); | |
$array = new Paginator($array, $total, $per_page, $current_page, [ | |
'path' => $request->url(), | |
'query' => $request->query(), | |
]); | |
dd($array); | |
} | |
} |
$request->input("page")
Should come from your request. You need to keep track of what page you're on from your view.
So always pass the value of that page in the request maybe through the URL assuming it is a get request.
eg
<a href="{{ url ("/your/url?page=".$array->current_page + 1 ) }}" > next </a>
Remember to ensure you add if statements to check if you're on the first page and if you're on the last page. You don't want the next or previous respectively to be clickable on those pages.
Oh right, excellent, thank you so much!!
Oh right, excellent, thank you so much!!
Glad i could help :)
short and simple = awesome 👍
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
$request->input("page")
Should come from your request. You need to keep track of what page you're on from your view.
So always pass the value of that page in the request maybe through the URL assuming it is a get request.
eg
<a href="{{ url ("/your/url?page=".$array->current_page + 1 ) }}" > next </a>