2017-02-04 13 views
1

私は配列としてIDのセットを持っています。それは複雑な検索ロジックから外されています。たとえば、私の配列は:カスタムforeachにLaravelページネーションを実装することは可能ですか

array(2,5,1,8,9,12,83,32); 

これらのIDは有効であり、投稿を表しています。だから私は何をするのですか?私はループごとにループし、最終的な配列にすべてのデータを収集します。例:

foreach($ArrayOfIds as $id) 
{ 
$posts[] = Post::findOrFail($id); 
} 

次に、この$ postsを私のビューに送ります。このシナリオでlaravelページネーションを実装することは可能ですか? $ ArrayOfIdsではもう再生できません。

答えて

1

はい、それは最初にIlluminate\Pagination\LengthAwarePaginator

public function showPost() 
{ 
    $posts = []; 
    foreach($ArrayOfIds as $id) { 
     $posts[] = Post::findOrFail($id); 
    } 

    $perPage = 6; 
    $paginator = new LengthAwarePaginator($posts, count($posts), $perPage); 
    $items = $paginator->getCollection(); 

    return $paginator->setCollection(
     $items->forPage($paginator->currentPage(), $perPage) 
    ); 
} 

を使用して、たとえば可能です、私はLengthAwarePaginatorクラスをインスタンス化し、see here、必要な引数を指定して、それを養います。そして、どの柱がどのページに属しているかを設定する必要があるので、Illuminate/Support/CollectionforPageメソッドを使用します。

何かがそうです。

+0

すばやくきれいな返信をありがとう。 showPost()関数がJSONで応答するとどうなりますか? –

+0

心配しないでください。私は考え出した。助けてくれてありがとう。 –

関連する問題