2017-10-13 14 views
0

私はAlgoliaでLaravelをテストしています。 Algoliaは検索結果の最大数を1000に制限しています。これはどちらも問題ありません。Laravel Algolia 1000以上のページ番号

私の問題は、Algoliaから1000件の検索レコードを要求してからページ付けすることができないということです。私は試しました:

$result = Model::search(request()->keywords)->take(1000)->paginate(50); 

しかし、私はまだLaravelに20以上のページを提供しています。 1000以上のレコードがある場合は、利用可能なすべてのレコードのページ番号を付けます。

提案がありますか?

+0

Algoliaを使用する最も良い方法は、次のページが必要なときにそれを照会することです。一度にすべての結果を得る必要がある理由を詳しく説明できますか?データベースから多くのデータを取り出すことになります。 –

+0

@Julien Bourdeau、一度に1ページずつ結果が必要です。しかし、それをする正しい方法は何ですか?あなたは、ポストやページに私を向けることができますか? – SuperOcean

+0

最終結果の詳細を記入して、あなたのやりたいことを理解できるようにしてください。 1つの結果だけが必要な場合は、 ' - > next()'メソッドを使うことができますが、私はあなたが実際にやっていることをまだ得ていません。 –

答えて

-1

@Amigoで少し変更してthis postに修正できました。私のコード:

Illuminate \ Pagination \ LengthAwarePaginatorを使用してください。

protected $perPage = 50; 

public function search() 
{ 

    $results = Model::search(request()->keywords)->take(1000)->get(); 

    $results = new LengthAwarePaginator(
     $results->slice((LengthAwarePaginator::resolveCurrentPage() * 
     $this->perPage)-$this->perPage, 
     $this->perPage)->all(), count($results), 
     $this->perPage, null, ['path' => '']); 

    return view('/searchResult', compact('results')); 

} 

今正常に動作し、標準Laravelのページネータを使用します。

関連する問題