Loading...
Loading...
Use when building or changing a Bagisto admin listing page — a DataGrid class with columns, search, filters, sorting, row actions, mass actions or export, and the controller and Blade view that render it. Trigger phrases include "datagrid", "admin listing", "add a column", "mass action", "prepareQueryBuilder", "listing page", "grid filter", "export grid".
npx skill4agent add bagisto/agent-skills bagisto-datagrid-developmentDataGridpackages/Webkul/DataGridWebkul\DataGrid\DataGrid| Method | Required | Purpose |
|---|---|---|
| yes | Return a query builder, not a collection |
| yes | |
| no | Per-row actions, each ACL-gated |
| no | Checkbox actions, each ACL-gated |
$primaryColumn'id'$sortColumn$sortOrder'desc'$itemsPerPage$perPageOptionsclass CurrencyDataGrid extends DataGrid
{
/**
* Prepare query builder.
*
* @return Builder
*/
public function prepareQueryBuilder()
{
return DB::table('currencies')
->select('id', 'name', 'code');
}
/**
* Add Columns.
*
* @return void
*/
public function prepareColumns()
{
$this->addColumn([
'index' => 'name',
'label' => trans('admin::app.settings.currencies.index.datagrid.name'),
'type' => 'string',
'searchable' => true,
'filterable' => true,
'sortable' => true,
]);
}
/**
* Prepare actions.
*
* @return void
*/
public function prepareActions()
{
if (bouncer()->hasPermission('settings.currencies.edit')) {
$this->addAction([
'index' => 'edit',
'icon' => 'icon-edit',
'title' => trans('admin::app.settings.currencies.index.datagrid.edit'),
'method' => 'GET',
'url' => fn ($row) => route('admin.settings.currencies.edit', $row->id),
]);
}
}
}=>addColumnaddActionpublic function index()
{
if (request()->ajax()) {
return datagrid(CurrencyDataGrid::class)->process();
}
return view('admin::settings.currencies.index');
}<x-admin::datagrid :src="route('admin.settings.currencies.index')" />datagrid()InvalidDataGridExceptionDataGrid| File | Load when |
|---|---|
| columns.md | Column types, search/filter/sort flags, dropdown options, closures, joins and |
| actions.md | Row actions, mass actions, ACL gating, export |
prepareQueryBuilder()->get()->paginate()DB::bouncer()->hasPermission(...)labeltrans()addFilter()v-html