Laravelフレームワーク/PHPフレームワーク全般にかなり慣れていないので、最初のプロジェクトのためにHacker Newsクローンを構築することにしました。ただし、並べ替えアルゴリズムで結果を並べ替えて結果をページ分割しようとすると、少し問題が発生しました。
コントローラ -
public function index()
{
// tried Story::paginate(10) here instead, results in error
$stories = Story::all();
$stories = $stories->sortBy(function($story)
{
return $story->getScore(); // returns score generated from HN algorithm
})->reverse();
return View::make('stories.index')->with('stories', $stories);
}
ビューは単なる「foreach($story as $story)」ループです。
上記のコードは問題なく動作しますが、ページ分割されていません。sortBy の前に paginate を呼び出すとエラーが返され (Paginator クラスには sortBy メソッドがありません)、sortBy の後に paginate を呼び出すとエラーが返されます。
では、結果をページ分割し、動的に生成されたスコアで並べ替えるにはどうすればよいでしょうか? ありがとう。