File: /var/www/ipsremont-demo/app/Traits/GridTrait.php
<?php
namespace App\Traits;
trait GridTrait
{
public function getOrderedQuery($class, $request) {
$query = $class::query();
$columns = $class::columns();
if (isset($request->sortable) && $request->sortable == true && $class::sortable($request->field)) {
$sort = $request->sort == 'asc' ? 'asc' : 'desc';
$query->orderBy($request->field, $sort);
} else {
foreach ($columns['sortDefault'] as $default) {
$query->orderBy($default['field'], $default['sort']);
}
}
return $query;
}
/**
* @param $class
* @param \Illuminate\Database\Eloquent\Builder $query
* @param $request
* @return mixed
*/
public function makeQueryOrdered($class, $query, $request) {
$columns = $class::columns();
if (isset($request->sortable) && $request->sortable == true && $class::sortable($request->field)) {
$sort = $request->sort == 'asc' ? 'asc' : 'desc';
$query->orderBy($request->field, $sort);
} else {
foreach ($columns['sortDefault'] as $default) {
$query->orderBy($default['field'], $default['sort']);
}
}
return $query;
}
}