webmachine / jqgrid
Jqgrid for Laravel 5
dev-master
2022-04-01 20:27 UTC
Requires
- php: >=5.5.0
- illuminate/config: >=5.4
- illuminate/support: >=5.4
- webmachine/custom-fields: dev-master
This package is auto-updated.
Last update: 2024-11-29 05:09:34 UTC
README
Install
Via Composer
$ composer require webmachine/jqgrid
Next, you must install the service provider and facade alias:
// config/app.php 'providers' => [ ... Webmachine\Jqgrid\JqgridServiceProvider::class, ]; ... 'aliases' => [ ... 'Jqgrid' => Webmachine\Jqgrid\JqgridFacade::class, ];
Publish
$ php artisan vendor:publish --provider="Webmachine\Jqgrid\JqgridServiceProvider"
Usage
In your Controller
... use Webmachine\Jqgrid\JqgridFacade as Jqgrid; class FooController extends Controller { /** * @see http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options ColModel API. */ const jqgrid_colmodel = [ [ 'label' => 'Id', 'name' => 'id', 'hidden' => true ], [ 'label' => 'Number', 'name' => 'number', 'searchoptions' => [ 'sopt' => ['bw'] ] ], [ 'label' => 'Name', 'name' => 'name', ], [ 'label' => 'Provider', 'name' => 'provider.name', // relation.fieldname 'relation' => 'FooModel.provider' // ModelName.relation (this relation must exist in your model) ] ]; ... public function index() { ... Jqgrid::add_js_colmodel('foo_table', self::jqgrid_colmodel); // add colmodel columns to render in view return view('foo.index'); ... } ... /** * Generate json response for jqgrid * @return string */ public function datagrid() { Jqgrid::init('foo_table', self::jqgrid_colmodel, self::jqgrid_format()); Jqgrid::get_query()->whereIn('user_id', auth()->user()->id); // add extra query conditions return Jqgrid::datagrid(); } ... /** * Return closure function to format jqgrid columns (optional) * @return function */ private static function jqgrid_format() { return function ($column, $value) { $result = $value; if ($column == 'name') { $result = ucfirst($value); } return $result; }; } }
In your view javascript
// foo/index.blade.php ... <!-- Load Jqgrid scripts in your scripts section --> {!! Jqgrid::scripts() !!} ... $('#jqgrid').jqGrid({ url: '{{ url("foo/datagrid") }}', colModel: {!! Jqgrid::js_colmodel() !!} ... });
License
The MIT License (MIT). Please see License File for more information.