У меня есть модель персонажа, в которой есть несколько аксессоров, которые подсчитывают некоторые предметы, связанные с этой моделью. Я не могу использовать orderby, потому что столбец не существует в БД и не может использовать sortby, потому что мы используем таблицы данных (с угловым значением). В postgres может быть возможно с боковым соединением, но я использую mysql. Есть ли другой способ сделать это? Accessors ex.
protected $appends = [
"changes_count"
];
public function getChangesCountAttribute()
{
return $this->changes()->where('type', 'Change')->count();
}
public function indexWithPagination(Request $request)
{
//Sorting
$column = isset($request->sortField) ? $request->sortField : null;
$order_by = 'asc';
if (isset($request->sortOrder)) {
$order_by = $request->sortOrder === 1 ? 'asc' : 'desc';
}
$record = Character::with(Character::getRelationshipsArray());
switch ($column) {
case 'cast':
$record->orderBy('character_number', $order_by);
break;
case 'changes_count':
??
break;
default:
$record->orderBy($column, $order_by);
break;
}
return getIndexWithPagination($record);
}