Laravel is a popular PHP framework, while Vue.js is a JavaScript framework for building user interfaces. Using them together can bring us a better development experience and more efficient development. When developing web applications, you need to use the paging function to handle the display of large amounts of data. So, how to implement pagination in Laravel and Vue? This article will introduce the paging implementation method of Laravel and Vue.
Pagination in LaravelLaravel provides a convenient way to use the paginate function in the controller to return a paginated collection. We can implement the paging function through the following code:$users = DB::table('users')->paginate(10); return view('user.index', ['users' => $users]);
@foreach ($users as $user) {{ $user->name }} @endforeach {{ $users->links() }}
The
$users->links() here is the paging operator provided by Laravel. In Laravel, pagination can also be implemented by specifying pagination as an api resource class. In the resource class, we can use the fractal and Paginator libraries provided by Laravel to implement the paging function. To use the Paginator library, you need to first configure the following in the controller:
use Illuminate\Pagination\LengthAwarePaginator; protected function paginate($items, $perPage = 15, $page = null) { $page = $page ?: (Paginator::resolveCurrentPage() ?: 1); return (new LengthAwarePaginator($items, count($items), $perPage, $page, [ 'path' => Paginator::resolveCurrentPath(), 'pageName' => 'page', ]))->appends($this->request->query()); }
public function toArray($request) { return [ 'data' => $this->collection, 'links' => [ 'self' => 'link-value', ], 'meta' => [ 'total' => $this->total(), 'per_page' => $this->perPage(), 'current_page' => $this->currentPage(), 'last_page' => $this->lastPage(), 'from' => $this->firstItem(), 'to' => $this->lastItem(), ], ]; }
import VuePagination from 'vue-pagination-2' export default { components: { VuePagination }, data () { return { currentPage: 1, ... } } }
<vue-pagination :total="total" :current-page="currentPage" :per-page="perPage" @paginate="loadPaginatedData" :pagination-class="'pagination'" :page-class="'page-item'"> </vue-pagination>
The above is the detailed content of How to implement paging function in laravel+vue. For more information, please follow other related articles on the PHP Chinese website!