2016-12-26 3 views
3

Я пытаюсь все в течение часа, чтобы сделать простую вещь в Laravel, и ничего не работает ....PHP Laravel - OrderBy (реверс) и постраничной

Итак, у меня есть много эпизодов, которые должны быть разбитым на страницы, но до этого эти эпизоды должны быть заказаны. Отношение «все-ко-многим».

Я попытался это, но он не работает:

$result = TheEpisode::where('seriesID', $id)->with(['TheNumbers' => function ($query) { 
    return $query->orderBy('episodeNumber', 'desc')->get(); 
}])->paginate(12); 

Я также попытался это:

$result = TheEpisode::where('seriesID', $id)->orderBy("TheNumbers.episodeNumber", 'desc')->paginate(12); 

Не работает.

EDIT

$result = TheEpisode::where('seriesID', $id)->get()->sortByDesc(function ($item) { 
    return $item->TheNumbers->max('episodeNumber'); 
}); 

Это работает, и возвращает 120 эпизодов в обратном порядке, что теперь мне нужно, чтобы постраничное это, как я могу это сделать?

+0

Вы пытались OrderBy по отношению? –

+0

попытайтесь переместить '-> get()' после 'with' и перед' -> paginate (12) ' –

+0

удалите источник' -> get() 'внутри отношений: http://laravel.io/forum/09 -14-2014-orderby-on-hasmany-relationship – Beginner

ответ

1

Try:

$result = TheEpisode::where('seriesID', $id)->sortByDesc(function ($item) { 
    return $item->TheNumbers->max('episodeNumber'); 
})->paginate(15)->get(); 

https://laravel.com/docs/5.3/pagination

+0

-> paginate не работает, потому что это должно быть сделано до -> get() – Coder

+0

@PHPLover скорректировал порядок звонков –

+0

sortbyDesc должен быть после -> get() – Coder

Смежные вопросы