質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

2173閲覧

laravelのぺジネーション ページ移行後の不具合

ganguligonguli

総合スコア12

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/07/11 07:02

ぺジネーションでページ遷移後も値を保持する

検索結果一覧画面を作成していて実現したいことは、以下の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">&laquo;</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">&raquo;</a></li> @else <li><span class="m-next" hidden>後へ</span></li> @endif {{-- latest page ling --}} </ul> </div> @endif

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

getであれば、URLに情報を付加すれば解決できるかもしれません。
appends や fragment が使えます。

試しに

PHP

1{{ $results->appends(['test' => $何かの値 ])->links('vendor.pagination.custom') }} 2

とかして、URLを見てみるのはいかがでしょうか?
見当違いでしたらすいません...

参考ページ

投稿2018/07/11 12:19

編集2018/07/11 12:21
hirolog

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ganguligonguli

2018/07/12 00:48

postからgetに修正をおこない、アドバイスいただいたようにappendsでURLクエリをつけたら出来ました。 アドバイスいただきありがとうございました。
guest

0

postだと検索した値が次ページに引き継がれません。getに変えてみて下さい。
どうしてもpostにしなければいけないのであればsessionに保存して次ページ以降はsessionから検索する値を取り出すようにして下さい。

投稿2018/07/11 08:20

k-fukuda

総合スコア219

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ganguligonguli

2018/07/11 08:24

ご回答いただきありがとうございます。 TOP画面のformのmethodとルートをgetに変えてみましたが、 同様に、1ページ目では正常に検索されるという結果でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問