Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Доброго времени суток, сильно упрощено опишу проблему:
2 таблички связные между собой 1 к 1
[b]sections[/b]
id
count (тут хранятся некие числа)
[b]statements[/b]
id
title
sections_id
В модели statements
public function section() {
return $this->hasOne('App\Section','id' ,'sections_id');
}
в контроллере statements
public function show(Request $request) {
$searchBy = $request->get('sort');
$statements = Statement::with('section');
switch ($searchBy)
case 'count_up':
$statements = Statement::with('section')->orderBy('sections.count_up', 'ASC')->paginate(10); // это не работает, т.к. колонка не найдена
breeak
case 'count_down':
$statements = Statement::with('section')->orderBy('sections.count_down', 'ASC')->paginate(10); // это не работает, т.к. колонка не найдена
breeak
default:
$statements = Statement::with('section')->orderBy('id', 'desc')->paginate(10);
break;
return view('statements')->with([
'statements' => $statements,
'searchBy'=> $searchBy,
]);
}
во вьюхе:
<a type="button" class="btn btn-xs" href="?sort=count_up"><i class="fa fa-arrow-up"></i></a>
<a type="button" class="btn btn-xs" href="?sort=count_down"><i class="fa fa-arrow-down"></i></a>
@if(!empty($statements))
@foreach ($statements as $statement)
{{$statement->section->title}}
{{$statement->id}}
{{$statement->section->count}}
@endforeach
<div class="text-center">{{ $statements->appends(['sort' => $searchBy])->links() }}</div>
А теперь собственно вопрос, как мне сделать сортировку всех statements по колонке count из таблички sections, и при этом что бы пагинация работала...
понимаю что можно получить коллекцию
$statements = Statement::with('section')->get()->sortByDesc('section.count');
но при этом пагинация работать не будет...
Не в сети