PHP code example of apphp / laravel-datagrid
1. Go to this page and download the library: Download apphp/laravel-datagrid library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
apphp / laravel-datagrid example snippets
use Apphp\DataGrid\Pagination;
use Apphp\DataGrid\Filter;
$filters = [
'act' => ['type' => 'equals', 'value' => 'search'],
'email' => ['title' => 'Email', 'type' => 'string', 'compareType' => '%like%', 'validation' => ['maxLength' => 150]],
'name' => ['title' => 'Name', 'type' => 'string', 'compareType' => '%like%'],
'username' => ['title' => 'Username', 'type' => 'string', 'compareType' => '%like%'],
'user_id' => ['title' => 'ID', 'type' => 'integer', 'compareType' => '=', 'validation' => ['max' => 10000000]],
];
// $query = User::sortable()->orderByDesc('id');
$query = User::orderByDesc('id');
$request = request(); // or get it via function param, like foo(Request $request){...}
$url = route('backend.users.submitRote');
$cancelUrl = $url;
$filters = [];
$filter = Filter::init($query, $request, $filters, $url, $cancelUrl, 'collapsed');
$filter = $filter::filter();
$filterFields = $filter::getFilterFields();
$query = $filter::getQuery();
$sort = $request->get('sort');
$direction = $request->get('direction');
$pagination = Pagination::init($query, 20, $sort, $direction, $filterFields)::paginate();
$paginationFields = $pagination::getPaginationFields();
$users = $pagination::getRecords();
return view('backend.users.mainView', compact('users', 'filterFields', 'paginationFields'));
public function index(Request $request)
{
// Additional data
$roles = Role::rolesList();
$statuses = User::statusesList();
$actives = [0 => 'Not Active', 1 => 'Active'];
// Define filters and filter field types
$filters = [
'act' => ['type' => 'equals', 'value' => 'search'],
'email' => ['title' => 'Email', 'type' => 'string', 'compareType' => '%like%', 'validation' => ['maxLength' => 150]],
'name' => ['title' => 'Name', 'type' => 'string', 'compareType' => '%like%'],
'username' => ['title' => 'Username', 'type' => 'string', 'compareType' => '%like%'],
'user_id' => ['title' => 'ID', 'type' => 'integer', 'compareType' => '=', 'validation' => ['max' => 10000000]],
'role' => ['title' => 'Role', 'type' => 'user_role', 'compareType' => '', 'source' => $roles],
'status' => ['title' => 'Status', 'type' => 'user_status', 'compareType' => '', 'source' => $statuses],
'active' => ['title' => 'Active', 'type' => 'user_active', 'compareType' => '', 'source' => $actives],
'created_at' => ['title' => 'Created At', 'type' => 'date', 'compareType' => 'like%'],
'last_logged_at' => ['title' => 'Last Login', 'type' => 'date', 'compareType' => 'like%'],
];
$query = User::orderByDesc('id');
// Handle filters and prepare SQL query
$filter = Filter::init($query, $request, $filters, route('users.list'), route('users.list'), 'collapsed');
$filter = $filter::filter();
$filterFields = $filter::getFilterFields();
$query = $filter::getQuery();
// Sorting
$sort = $request->get('sort');
$direction = $request->get('direction');
// Pagination
$pagination = Pagination::init($query, 20, $sort, $direction, $filterFields)::paginate();
$paginationFields = $pagination::getPaginationFields();
$users = $pagination::getRecords();
return view('users.list', compact('users', 'filterFields', 'paginationFields'));
}
$query = User::orderByDesc('id');
$query = User::sortable()->orderByDesc('id');
// GridView - initialized in Controller
$gridView = GridView::init($records);
return view('backend.users', compact(..., 'gridView'));
'callback'=>function($user){ return $user->isVerified() ? '<span class="badge badge-primary">Verified</span>' : '<span class="badge badge-secondary">Waiting</span>'; }
'callback'=>function($user) use ($roles){ $output = ''; if(!count($user->roles)) $output .= '<span class="badge badge-light">User</span>'; foreach($user->roles as $role) { $output .= '<span class="badge badge-info">'.$roles[$role->name].'</span> '; } return $output; }
'callback'=>function($user){ return '<img src="'.$user->avatar.'" alt="avatar" /> <a href="'.route('users.show', $user).'" title="Click to edit">'.$user->username.'</a>'; }
bash
php artisan vendor:publish --provider="Apphp\DataGrid\DataGridServiceProvider"
bash
php artisan vendor:publish --tag=laravel-datagrid:config
bash
php artisan vendor:publish --tag=laravel-datagrid:lang
bash
./vendor/bin/phpunit vendor\\apphp\\laravel-datagrid\\tests\\TestDataGridMessage.php
bash
composer tests vendor\\apphp\\laravel-datagrid\\tests\\TestDataGridMessage.php
composer tests vendor\\apphp\\laravel-datagrid\\tests\\TestDataGridPagination.php
composer tests vendor\\apphp\\laravel-datagrid\\tests\\TestDataGridFilter.php