protected function appendSort(&$query, $model, $sort)
{
$relation = null;
if (isset($sort['relationship'])) {
$function = $sort['relationship'];
$relation = $model->{$function}();
switch (get_class($relation)) {
case 'Illuminate\\Database\\Eloquent\\Relations\\MorphMany':
$query = $this->morphMany($relation, $query, $model, $sort['orderBy'], $sort['dir']);
break;
case 'Illuminate\\Database\\Eloquent\\Relations\\BelongsTo':
$query = $this->belongsTo($relation, $query, $model, $sort['orderBy'], $sort['dir']);
break;
case 'Illuminate\\Database\\Eloquent\\Relations\\HasOne':
$query = $this->hasOne($relation, $query, $model, $sort['orderBy'], $sort['dir']);
break;
}
} else {
if (isset($sort['orderBy'])) {
$query = $query->orderBy($sort['orderBy'], $sort['dir']);
}
}
return $query;
}