Laravel 5 package for handling column sorting with pagination example

Laravel 5 package for handling column sorting with pagination example

In this post we will give you information about Laravel 5 package for handling column sorting with pagination example. Hear we will give you detail about Laravel 5 package for handling column sorting with pagination exampleAnd how to use it also give you demo for it if it is necessary.

Laravel 5 package for handling column sorting with pagination example

In this Laravel 5.6 Tutorial, I will let you know how to implement column sorting and pagination with example using kyslik/column-sortable package.

This is very easiest way to get links on the column headings in the table to sort the table data.

User can easily traverse on the long list of paginated records by sorting column with the help of kyslik/column-sortable package in Laravel 5.6

You can sort the database results based on a specific column either in ascending or descending order.

By default, It will use the default font classes of Font Awesome to show the icons for sorting orders.

This is very helpful package for the developers to develop admin panel where they can easily implement the sorting features by following few steps in Laravel 5



Step1: Download the fresh Laravel application

In this step, I will download the fresh application of Laravel to start from the scratch.

composer create-project --prefer-dist laravel/laravel blog


Step2: Install the Laravel Package kyslik/column-sortable

Now in this step, I will add the kyslik/column-sortable Laravel package to start working on sorting results.

Run the following command to install the package :

composer require kyslik/column-sortable

Now open the app.php file from config directory and add the service provider in providers array.

'providers' => [

	....

	KyslikColumnSortableColumnSortableServiceProvider::class,

]

.....

Now publish the configuration file for kyslik/column-sortable package in Laravel.

php artisan vendor:publish --provider="KyslikColumnSortableColumnSortableServiceProvider" --tag="config"

When you run above command to publish the pacage configuration file then you will get following response :

Copied File [/vendor/kyslik/column-sortable/src/config/columnsortable.php] To [/config/columnsortable.php]
Publishing complete.


Step3: User.php Model

In this step, add sortable scope to the “User” models.

<?php

namespace App;

use IlluminateNotificationsNotifiable;
use IlluminateFoundationAuthUser as Authenticatable;
use KyslikColumnSortableSortable;

classUserextends Authenticatable
{
    use Sortable;
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected$fillable= [
        'name', 'email', 'password'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected$hidden= [
        'password', 'remember_token',
    ];
    public$sortable= ['id','name','email','created_at'];
}


Step4: Add Route

In this step, I will add route to list user data so that I can test the sorting features of kyslik/column-sortable Laravel package.


routes/web.php

Route::get('users', 'UserController@index');


Step5: Create UserController.php

In this step, I will create UserController.php file in following path app/Http/Controllers/

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;
use AppUser;

classUserControllerextends Controller
{
    /**
     * Display the products dashboard.
     *
     * @return IlluminateHttpResponse
     */
    publicfunctionindex()
    {
        $users= User::sortable()->paginate(10);
        return view('users.index',compact('users'));
    }


}


Step6: Create Blade View File “index.blade.php”

Now I will create a directory “users” inside resources/views/ directory and create a file index.blade.php inside the users directory.


resources/views/users/index.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 5 package for handling column sorting with pagination example</title>
    <linkrel="stylesheet"href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <linkhref="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"rel="stylesheet">
</head>
<body>

<divclass="container">
    <h3class="text-center">Laravel 5 package for handling column sorting with pagination example</h3>
    <tableclass="table table-bordered">
        <tr>
            <th>@sortablelink('id')</th>
            <th>@sortablelink('name')</th>
            <th>@sortablelink('email')</th>
            <th>@sortablelink('created_at','Created At')</th>
        </tr>
        @if($users->count())
            @foreach($users as $user)
                <tr>
                    <td>{{ $user->id }}</td>
                    <td>{{ $user->name }}</td>
                    <td>{{ $user->email }}</td>
                    <td>{{ $user->created_at->diffForHumans() }}</td>
                </tr>
            @endforeach
        @endif
    </table>
    {!! $users->appends(request()->except('page'))->render() !!}
</div>


</body>


</html>

In @sortablelink() method, You will define the column name in the first parameter that needs to be sorted and in the second column, you will define the title that will be displayed inside anchor tags.

Try this example.

Hope this code and post will helped you for implement Laravel 5 package for handling column sorting with pagination example. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs

For More Info See :: laravel And github

Leave a Comment

Your email address will not be published. Required fields are marked *

  +  3  =  13

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US