zoor/gridmodel

Grid Model to show master data

dev-master 2017-09-23 11:58 UTC

This package is not auto-updated.

Last update: 2025-07-12 20:25:59 UTC


README

Laravel 5.4, Grid, Grid Model, Grid Table, Populate Master Data, Bootstrap Css

Feature

  • filter perpage
  • filter column with dropdown
  • search by column you defined
  • bulk update (next)
  • bulk delete (next)

install via composer

 composer require "zoor/gridmodel @dev"

adding into main composer.json

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/",
        "Zoor\\GridModel\\": "vendor/zoor/gridmodel/src"
    }
},

in terminal, execute following command:

composer dump-autoload
php artisan vendor:publish

insert this line into array providers on config/app.php

Zoor\GridModel\GridModelServiceProvider::class,

Usage

controller

public function index(){
   $query = CategoryPost::query();
   $sqlOpLike = 'like'; // if your database is postgresql you should change to 'ilike'
   $listStatus = [1=> 'Active', 2=> 'Inactive'];
   $listAncestor = CategoryPost::where('cat_post__parent_id', NULL)->pluck('cat_post_name','cat_post_id')->toArray();
   return view('admin.category-post.index', compact('query', 'sqlOpLike', 'listStatus', 'listAncestor'));
}

view template

Zoor\GridModel\GridModel::table([
        'prefix_url_action' => 'category-post',
        'query' => $query,
        'bulk_status' => $listStatus,
        'coloumns_search' => [ 'cat_post_name' => $sqlOpLike, 'cat_post_slug' => $sqlOpLike, 'cat_post_description' => $sqlOpLike ],
        'coloumns_search_placeholder' => 'Find by Name or Description',
        'coloumns' => [
                'cat_post_name' => [
                        'title' => trans('admin.name'),
                        'sort' => true,
                ],
                'parentName' => [
                        'title' => trans('admin.parent'),
                        'sort' => false,
                        'filter_field' => 'cat_post__parent_id',
                        'filter_dropdown' => $listAncestor,
                ],
                'cat_post_description' => [
                        'title' => trans('admin.description'),
                        'sort' => false,
                        'isDesc' => true,
                ],
                'cat_post_status' => [
                        'title' => trans('admin.status'),
                        'sort' => false,
                        'filter_field' => 'cat_post_status',
                        'filter_dropdown' => $listStatus,
                        'callback_row'=>function($model){
                            $status = CategoryPost::getStatusName($model->cat_post_status);
                            $label = CategoryPost::getLabelClassCssStatus($model->cat_post_status);
                            return '<span class="label label-'.$label.' label-mini">' . $status . '</span>';
                        }
                ],
                'cat_post_created_at' => [
                        'title' => trans('admin.created_at'),
                        'sort' => true
                ],
        ]
]);
                

License

MIT