ぺジネーションでページ遷移後も値を保持する
検索結果一覧画面を作成していて実現したいことは、以下の2点です。
1.TOP画面で検索条件を入力→検索結果一覧を表示→ページ移行
2.検索結果にヒットした件数を取得し、ページ移行後も値を引き継がせたい
処理としては、
TOP画面で検索条件を入力
→コントローラでクエリビルダでクエリを作成し、検索結果を絞り込む
→viewに値を渡して検索結果一覧を表示
としています
発生している問題・エラーメッセージ
検索結果の1ページ目は期待する結果が得られます。
しかし、2ページ目に移行した際にコントローラで検索条件を絞り込んだはずのところが、
絞込みがおこなわれず、全件表示されてしまいます。
該当のソースコード
[TOP]
<form method="post" action="/result"> {{ csrf_field() }} <select name="pref"> <option value="">都道府県を選択</option> @foreach($prefs as $pref) <option value="{{ $pref->number }}">{{ $pref->name}}</option> @endforeach </select>
[Controller]
class SearchController extends Controller { public function search(Request $request) { $pref = $request->pref; $query = DB::table('region') if(isset($pref)){ $query->where('employer_prefectures', $pref); } $results = $query->paginate(1); $total = $query->count(); return view('result', ['results' => $results, 'total' => $total, ]); }
[ぺジネーション]
{{ $results->links('vendor.pagination.custom') }}
[ぺジネーションview]
@if ($paginator->hasPages()) <div class="col2-pagewrap"> <ul class="pagination"> {{-- Previous Page Link --}} @if ($paginator->onFirstPage()) <li><span class="m-prev" hidden>前へ</span></li> @else <li><a href="{{ $paginator->url(1) }}" rel="prev" class="m-prev">«</a></li> <li><a href="{{ $paginator->previousPageUrl() }}" rel="prev" class="m-prev">前へ</a></li> @endif {{-- Pagination Elements --}} @foreach ($elements as $element) {{-- "Three Dots" Separator --}} @if (is_string($element)) <li><span class="m-prev">{{ $element }}</span></li> @endif {{-- Array Of Links --}} @if (is_array($element)) @foreach ($element as $page => $url) @if ($page == $paginator->currentPage()) <li class="current"><span>{{ $page }}</span></li> @else <li><a href="{{ $url }}">{{ $page }}</a></li> @endif @endforeach @endif @endforeach {{-- Next Page Link --}} @if ($paginator->hasMorePages()) <li><a href="{{ $paginator->nextPageUrl() }}" rel="next" class="m-prev">後へ</a></li> <li><a href="{{ $paginator->url($paginator->lastPage()) }}" rel="next" class="m-prev">»</a></li> @else <li><span class="m-next" hidden>後へ</span></li> @endif {{-- latest page ling --}} </ul> </div> @endif

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/12 00:48