underwear/laravel-vue-good-table

Vue-good-table wrapper for Laravel. Server side tables without pain.
16,731 40
Install
composer require underwear/laravel-vue-good-table
Latest Version:v1.5
PHP:^7.1|^8.0|^8.1
License:MIT
Last Updated:Nov 27, 2023
Links: GitHub  ·  Packagist
Maintainer: underwear

laravel-vue-good-table

Customizable table tool for Laravel, uses powerful vue-good-table. Server side tables without pain.

Supports pagination, filtering, searching, sorting. Inspired by Laravel Nova :)

til

Reqs

  • Laravel 5.6+ or Laravel 6, Laravel 7, Laravel 8, Laravel 9
  • Using Vue.js in your project

Usage example

  1. Use InteractsWithVueGoodTable trait in your controller and implement two methods: getColumns() and getQuery().
  2. Register two new routes.
  3. Use Vue component laravel-vue-good-table wherever you want.

Controller:


namespace App\Http\Controllers;

use LaravelVueGoodTable\InteractsWithVueGoodTable;
use LaravelVueGoodTable\Columns\Column;
use LaravelVueGoodTable\Columns\Date;
use Illuminate\Http\Request;
use App\User;

class TestController extends Controller
{
    use InteractsWithVueGoodTable;

    /**
     * Get the query builder
     * 
     * @param Request $request
     *
     * @return Illuminate\Database\Eloquent\Builder
     */
    protected function getQuery(Request $request)
    {
        return User::query();
    }

    /**
     * Get the columns displayed in the table
     *
     * @return array
     */
    protected function getColumns(): array
    {
        return [
            Text::make('ID', 'id')
                ->sortable()
                ->searchable(),
                
            Text::make('Name', 'name')
                ->searchable(),
                
            Text::make('E-mail', 'email')
                ->searchable(),
                
            Date::make('Created At', 'created_at')
                ->sortable()
                ->dateOutputFormat('dd.MM.yyyy HH:mm:ss'),
        ];
    }
}

Routes:

Route::get('/lvgt/config', 'TestController@handleConfigRequest');
Route::get('/lvgt/data', 'TestController@handleDataRequest');

Blade/HTML:

<div id="vue">
    <laravel-vue-good-table data-url="/lvgt/data" config-url="/lvgt/config"/>
</div>

Installation

composer require underwear/laravel-vue-good-table

See the full Installation Guide in DOCUMENTATION.md

Documentation

See DOCUMENTATION.md

Contributing

Contributions are welcome!

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

erirk/paypalpayment

laravel-paypalpayment is simple package help you process direct credit card paym...

0
gabrieloliverio/laravel5-generators

Database metadata-based generators for Laravel 5

1
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

628,058,007 9,707
laravel/framework

The Laravel Framework.

576,155,700 34,907
laravel/tinker

Powerful REPL for the Laravel framework.

485,678,092 7,440