2017-09-23 8 views
0

私はlaravelでページネーションを作成しようとしていますが、成功しましたがsoeの場合は失敗しました。私はこのラインを削除する場合laravel 5.4でカスタムページ設定を作成する方法データが収集されていないとき

Collection {#347 ▼ 

     #items: array:13 [▼ 
     0 => LengthAwarePaginator {#355 ▶} 
     1 => LengthAwarePaginator {#403 ▶} 
     2 => LengthAwarePaginator {#423 ▶} 
     3 => LengthAwarePaginator {#431 ▶} 
     4 => LengthAwarePaginator {#453 ▶} 
     5 => LengthAwarePaginator {#471 ▶} 
     6 => LengthAwarePaginator {#491 ▶} 
     7 => LengthAwarePaginator {#513 ▶} 
     8 => LengthAwarePaginator {#535 ▶} 
     9 => LengthAwarePaginator {#555 ▶} 
     10 => LengthAwarePaginator {#575 ▶} 
     11 => LengthAwarePaginator {#595 ▶} 
     12 => LengthAwarePaginator {#615 ▶} 
     ] 
    } 

と私のコントローラメソッドで:私の結果が得られ

public function city(city $job_city) 
    { 

     $data = privatejobcity::where('city_id', $job_city->id)->get(); 

     $private_job = []; 
     foreach ($data as $values) { 

      $private_job[] = private_jobadb::with('cities')->where('id', $values->private_jobabd_id)->paginate(5); 
     } 
$private_job = collect($private_job); 


     return view('frontend.jobTestCatagory.jobsByCities', compact('data', 'private_job')); 
    } 

:改ページ

コントローラーを作成しますは

array:13 [▼ 
    0 => LengthAwarePaginator {#355 ▶} 
    1 => LengthAwarePaginator {#403 ▶} 
    2 => LengthAwarePaginator {#423 ▶} 
    3 => LengthAwarePaginator {#431 ▶} 
    4 => LengthAwarePaginator {#453 ▶} 
    5 => LengthAwarePaginator {#471 ▶} 
    6 => LengthAwarePaginator {#491 ▶} 
    7 => LengthAwarePaginator {#513 ▶} 
    8 => LengthAwarePaginator {#535 ▶} 
    9 => LengthAwarePaginator {#555 ▶} 
    10 => LengthAwarePaginator {#575 ▶} 
    11 => LengthAwarePaginator {#595 ▶} 
    12 => LengthAwarePaginator {#615 ▶} 
] 

firstItem, countは、エラーがスローされますように私は、メソッドが存在しないと他のいくつかのエラーは、私が

答えて

0

は(収集コードに変更するかに依存することに改ページヘルパーを使用する場合)follwing結果を示しているヘルパーメソッドですIlluminate \ Support \ Collectionクラスを参照しています。

ページ設定を使用するには、Illuminate \ Pagination \ AbstractPaginator抽象クラス(Illuminate \ Pagination \ LengthAwarePaginatorなど)を拡張するクラスを使用する必要があります。

Illuminate \ Support \ Collectionは、Illuminate \ Pagination \ AbstractPaginatorを拡張していません。このため、ページネーションは機能しません。

$private_job = private_jobadb::leftJoin('cities', 'cities.id', '=', 'private_jobadb.city_id') 
->where('id', $job_city->id) 
->paginate(5); 

これはおそらくLengthAwarePaginatorのオブジェクトを返します。あなたのケースに

は、私はあなたがあなたのクエリをリファクタリングし、などのように、JOINSで作業することをお勧めします。これにより、ページネーションが作業になります。

この前に、関係を確認して新しいクエリを正しく書き込んでください。

関連する問題