LaravelとAjax呼び出しを使用して、チェックボックスをクリックして検索フィルターに取り組んでいます。したがって、チェックボックスをクリックすると結果が得られます。クエリは次のとおりです。
$editors = User::with(['editor.credentials','editor.specialties','editor.ratings']);
$temp=$editors->whereHas('editor', function($q) use ($a_data){
$q->whereHas('specialties',function($sq) use($a_data){
$sq->whereIn('specialty',$a_data);
});
})->paginate(2);
これにより、必要なすべてのデータが得られます。しかし、ページネーションのリンクをどのように取得する必要がありますか?
$temp->setBaseUrl('editors');
$links = $temp->links()->render();
現在これを行っており、ajax呼び出しへの応答として送信している$ linksを使用して、$ linksデータでページネーションを設定します。ここで、page = 2?query = "something"のようなクエリを次のページに追加する必要があります。残りのクエリ結果リンクを次のページのリンクに追加する方法を知りません。すなわち、私は知らない; query = "something"部分に何が来るべきかわからない。誰かが私を導くことができます。ありがとう
グローバルソリューションである@Ardaの回答を確認してください。以下に、手動で行う方法を示します。
Paginatorでappends
を使用します。
$querystringArray = Input::only(['search','filter','order']); // sensible examples
// or:
$querystringArray = ['queryVar' => 'something', 'anotherVar' => 'something_else'];
$temp->appends($querystringArray);
{{ $users->appends($_GET)->links() }}
すべてのクエリ文字列パラメーターをページネーションリンクに追加します
これをアプリの任意の場所(たとえば、routes.php、filters.php、または自動ロードされるもの)に追加します。既に記述されているページネーションコードを編集する必要はありません。これは、ビューコンポーザーを使用して問題なく機能し、クエリ文字列パラメーターを知る必要はありません。
////////PAGINATION QUERY STRING APPEND
View::composer(Paginator::getViewName(), function($view) {
$queryString = array_except(Input::query(), Paginator::getPageName());
$view->paginator->appends($queryString);
});
//////////////////
Laravel現時点(5.2)の最新バージョンの場合、Requestファサードを使用してクエリ文字列を取得し、それをページネーターのappends()メソッドに渡すことができます。
$input = Request::input();
$myModelsPaginator = App\Models\MyModel::paginate();
$myModelsPaginator->appends($input);
実際のページ、フォームトークン、および渡したくないものを除くすべての入力を追加します。
$paginatedCollection->appends(request()->except(['page','_token']));
以前の回答から着想を得て、フロントエンドとAPIの両方のサポートにサービスコンテナーを使用することになりました。
AppServiceProvider@boot()
メソッドで:
$this->app->resolving(LengthAwarePaginator::class, function ($paginator) {
return $paginator->appends(array_except(Input::query(), $paginator->getPageName()));
});
ビューでページネーションを表示します...
{{ $results->appends(Request::except('page'))->links() }}
appendsは、「ページ」以外のクエリ文字列値を保持します。 POSTリクエストで動作するかどうかわからない