Подскажите, пожалуйста, как реализовать сортировку по связям (с пагинацией) в Laravel 4.
Пробовала сделать так:
$sortBy = Request::get('sortBy');
$direction = Request::get('direction');
$limit = 10;
$query = new Page;
if ($sortBy && $direction) {
$page = Request::get('stranitsa', 1);
if($direction == 'asc') {
$pages = $query->skip($limit * ($page - 1))->take($limit)->get()
->sortBy(function($q) use($sortBy) {
return $q->$sortBy->count();
});
} else {
$pages = $query->sortBy(function($q) use($sortBy) {
return $q->$sortBy->count();
})->reverse();
}
$pages = Paginator::make($pages->all(), count($pages), $limit);
} else {
$query = $query->orderBy('created_at', 'DESC');
$pages = $query->paginate($limit);
}
Все хорошо до того момента, пока записи помещаются на 1 страницу. Как только записей больше 10-ти, сортировка перестает работать, а пагинация не появляется.
Подскажите, пожалуйста, в чем ошибка или, возможно, какой-то лучший вариант сортировки по связям.