2016-12-26 6 views
3

ページ番号を付け、私はlaravelに単純なことを行うには時間のすべてをしようとしていますし、何も動作....PHP Laravel - [並べ替え(逆)と

だから、私は、ページ分割されなければならないエピソードがたくさんありますその前にそれらのエピソードを注文する必要があります。多対多関係。

私はこれを試してみたが、それはうまくいきませんでした:

$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

' - > paginate(12)' –

+0

の前に ' - > get()'を 'with'の後に移動して、' - > get() '関係を削除してみてください:http://laravel.io/forum/09 -14-2014-orderby-on-hasmany-関係 – Beginner

答えて

1

試してみてください。

$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

関連する問題