devmi/datatables

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

Installs: 7

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 3

Forks: 0

Language:Vue

1.1 2018-03-26 17:59 UTC

This package is auto-updated.

Last update: 2024-04-21 20:02:43 UTC


README

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);
}