2017-01-31 3 views
1

検索フォームを使用してデータベースからツアーを検索し、結果にページ区切りを適用するようにクエリを設定しました。以下のクエリである:ページング中の未定義オフセット: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` 
を与える
http://localhost:8000/trip/search?page=2 

:2ページのため

http://localhost:8000/trip/search?country=croatia&category=holiday&days=10%7C15 

URLは次のようになります。これは、検索ページのURLは次のようになりますエラー

Undefined offset: 1

を与えます

私はlaravelで前に改ページを使用しましたが、このような問題に直面していません。

+0

デバッグスタックトレースが役立ちます。 – GiamPy

+0

http:// localhost:8000/trip/search?country = croatia&category = holiday&days = 10%7C15&page = 2エラーが発生していませんか? – ABebars

+0

はい、2ページ目に必要なデータがあります。 –

答えて

1

問題ここでは、あなたが次のページに移動するときに、クエリ文字列の上に運びませんあなたのビューにこのデータを渡す必要があり、あなたは以下の

{{ $data->appends(Request::only('country','categorry','days'))->links() }} 

を使用することができます。これは、それに

を修正する必要がありますので、データ
+0

ありがとうございます。出来た。 –

+0

喜んで:) – ABebars

0

あなたはページネーションリンクにデータを追加するappend()メソッドを使用する必要があります。

{{ $data->appends([ 
     'country' => 'croatia', 
     'category' => 'holiday', 
     'days' => '10%7C15' 
    ])->links() }} 

https://laravel.com/docs/5.3/pagination#displaying-pagination-results

+0

私はこれらの行を私のビューに正しく追加する必要がありますか? –

+0

@ZacharyDaleはい、 '{{$ data-> links()}}'や '{{$ data-> render()}}'の代わりにこれを使用します。また、 'croatia'をこの値を持つ変数に変更します。 –

+0

したがって、静的な値をキーに設定していますか?しかし、私の場合、これらのデータは検索フォームのドロップダウンから得られたものです。 –

関連する問題