0 レビュー
2 回答
php-未定義のオフセット:ページ付け中の1 Laravel
検索フォームを使用してデータベースからツアーを検索するクエリを設定し、結果にページ付けを適用しました。以下はクエリです:
public function search(Request $request)
{
$days = $request->days;
$days_explode = explode('|', $days);
$query= Tour::whereHas('country', function($r) use($request) {
$r->where('countries.name','=', $request->country);
})
->whereHas('category', function($s) use($request) {
$s->where('categories.name','=', $request->category);
})
->whereHas('country', function($r) use($request) {
$r->where('countries.name','=', $request->country);
})
->whereBetween('days', [$days_explode[0], $days_explode[1]])
->paginate(1);
return view('public.tour.list')->withResults($query);
}
paginate
を使用せずに、フォームに以下のデータが入力された場合(ドロップダウン)。クエリは4つの結果をビューに返します。
country:Croatia,category:Holiday, days:10|15
そして、 paginate()
を使用して複数のページで結果を取得すると、最初はエラーなしで実行されますが、2,3のような他のページをクリックすると実行されます。エラーが発生します
Undefined offset: 1
検索ページのURLは次のようになります:
http://localhost:8000/trip/search?country=croatia&category=holiday&days=10%7C15
2ページ目のURLは次のようになります:
http://localhost:8000/trip/search?page=2
エラーを出す
`Undefined offset: 1`
以前laravelでpaginateを使用したことがありますが、このような問題に直面したことはありません。
わからない
0
レビュー
答え :
解決策:
ここでの問題は、次のページに移動するときにクエリ文字列データを引き継がないため、このデータをビューに渡す必要があり、次を使用できます< / p>
{{ $data->appends(Request::only('country','categorry','days'))->links() }}
これで修正されるはずです
わからない
0
レビュー
答え :
解決策:
ページネーションリンクにデータを追加するには、 append()
メソッドを使用する必要があります:
{{ $data->appends([
'country' => 'croatia',
'category' => 'holiday',
'days' => '10%7C15'
])->links() }}
https://laravel.com/docs/5.3/pagination#displaying-pagination-results
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。