1. Go to this page and download the library: Download freshbitsweb/laratables 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/ */
freshbitsweb / laratables example snippets
use App\User;
use Freshbitsweb\Laratables\Laratables;
...
return Laratables::recordsOf(User::class);
use App\User;
use Freshbitsweb\Laratables\Laratables;
...
return Laratables::recordsOf(User::class, function($query)
{
return $query->where('active', true);
});
use App\User;
use Freshbitsweb\Laratables\Laratables;
use App\Laratables\User as UserLaratables;
...
return Laratables::recordsOf(User::class, UserLaratables::class);
/**
* Fetch only active users in the datatables.
*
* @param \Illuminate\Database\Eloquent\Builder
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function laratablesQueryConditions($query)
{
return $query->where('active', true);
}
/**
* Eager load media items of the role for displaying in the datatables.
*
* @return callable
*/
public static function laratablesRoleRelationQuery()
{
return function ($query) {
$query->with('media');
};
}
/**
* Join roles to base users table.
* Assumes roles -> users is a one-to-many relationship
*
* @param \Illuminate\Database\Eloquent\Builder
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function laratablesQueryConditions($query)
{
return $query->join('roles', 'roles.id', 'users.role_id');
}
/**
* Returns the action column html for datatables.
*
* @param \App\User
* @return string
*/
public static function laratablesCustomAction($user)
{
return view('admin.users.
/**
* Returns truncated name for the datatables.
*
* @param \App\User
* @return string
*/
public static function laratablesName($user)
{
return Str::limit($user->name, 15);
}
/**
* Adds the condition for searching the name of the user in the query.
*
* @param \Illuminate\Database\Eloquent\Builder
* @param string search term
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function laratablesSearchName($query, $searchValue)
{
return $query->orWhere('first_name', 'like', '%'. $searchValue. '%')
->orWhere('surname', 'like', '%'. $searchValue. '%')
;
}
/**
* first_name column should be used for sorting when name column is selected in Datatables.
*
* @return string
*/
public static function laratablesOrderName()
{
return 'first_name';
}
/**
* first_name and last_name columns should be used for sorting when name column is selected in Datatables.
*
* @param string Direction
* @return string
*/
public static function laratablesOrderRawName($direction)
{
return 'first_name '.$direction.', last_name '.$direction;
}
/**
* Additional columns to be loaded for datatables.
*
* @return array
*/
public static function laratablesAdditionalColumns()
{
return ['first_name', 'surname'];
}
/**
* Additional searchable columns to be used for datatables.
*
* @return array
*/
public static function laratablesSearchableColumns()
{
return ['first_name', 'surname'];
}
/**
* Set user full name on the collection.
*
* @param \Illuminate\Support\Collection
* @return \Illuminate\Support\Collection
*/
public static function laratablesModifyCollection($users)
{
return $users->map(function ($user) {
$user->full_name = $user->first_name . ' '. $user->last_name;
return $user;
});
}
/**
* Specify row class name for datatables.
*
* @param \App\User
* @return string
*/
public static function laratablesRowClass($user)
{
return $user->is_active ? 'text-success' : 'text-warning';
}
/**
* Returns the data attribute for url to the edit page of the user.
*
* @param \App\User
* @return array
*/
public static function laratablesRowData($user)
{
return [
'edit-url' => route('admin.user.edit', ['user' => $user->id]),
];
}