Skip to content

Super useful package for managing your database from an admin panel.

License

Notifications You must be signed in to change notification settings

MiloudiMohamed/DataTables

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DataTable

Useful package for managing your database from an admin panel.

Installation

Step 1: Composer

From the command line, run:

composer require devmi/datatables

Step 2: Service Provider

If you're using laravel >5.5 skip to the next step.

Open config/app.php and within the providers array:

Devmi\Datatables\DataTableServiceProvider::class

Step 3: Controller

For this package to function properly, you must create a controller extends our base DataTableController.

e.g:

php artisan make:controller UserController

then, you must implement the abstract builder function

use App\User;
use Devmi\Datatables\Controllers\DatatableController;


class UserController extends DatatableController
{
    public function builder()
    {
        return User::query();
    }

    //...
}

Step 4: Route

Simply add resources route.

Open routes/web.php , add:

Route::resource('users', 'UserController');

Step 5: vendor puslish

Now you must publish the vue compenents and register it in order to use it.

php artisan vendor:publish --tag=devmi

open resources/assets/js/app.js and register the component

Vue.component('data-table', require('./vendor/devmi/DataTable.vue'));

you find the file under resources/assets/js/vendor/devmi/DataTable.vue , you customize it.

Usage

Now you can visit www.domain.com/admin/users

'users' is you table name.

Imgur

  • Repeat step 3 & step 4 for your other model.

Notice

You must to install ES6 spread operator in order to use this package properly

npm install --save-dev babel-plugin-transform-object-rest-spread

then, create .babelrc file from you command line

echo '{ "plugins": ["transform-object-rest-spread"] }' > .babelrc

Now compile your asset running

npm run dev

Extra

Example:

You can override the following functions and variables for your need

/**
 * Allows admin to add new record on database
 */

$allowCreation: Bool
public function getDisplayableColumns()
{
    return ['columns', 'you', 'need', 'to', 'display'];
}
public function getUpdatableColumns()
{
    return ['updateable', 'columns'];
}
public function store(Request $request)
{
    // Add validation for example
    parent::store($request);
}
public function update($id, Request $request)
{
    // Add validation for example
    parent::update($id, $request);
}

About

Super useful package for managing your database from an admin panel.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published