モデルの結果をページ分割しようとしていますが、「メソッドページ分割は存在しません。」と表示されます。ここに私のコードがあります:
$user_dispatches = Dispatch::all()->where('user_id', Auth::id())->paginate(10);
ユーザーIDが現在の認証済みユーザーIDと等しいすべてのレコードを取得する必要があります。 paginate()メソッドがなくてもうまく機能します。
all()
を削除する必要があります:
_Dispatch::where('user_id', Auth::id())->paginate(10);
_
all()
を使用している場合、テーブルからすべての行を取得し、コレクションを取得します。次に、コレクションメソッドwhere()
(クエリビルダメソッドwhere()
ではなく)を使用していて、コレクションでpaginate()
メソッドを使用しようとしていますが、存在しない。
Alexeyの完璧な答えを少し拡張します。
Dispatch::all()
=>Collection
を返します
Dispatch::all()->where()
=>Collection
を返します
Dispatch::where()
=>Query
を返します
Dispatch::where()->get()
=>Collection
を返します
Dispatch::where()->get()->where()
=>Collection
を返します
paginate
ではなく、Query
でのみ「Collection
」を呼び出すことができます。
そして、はい、where
とQueries
の両方に対してCollections
関数を使用することは完全に混乱します。
すべてのレコードとページネーションを使用するには、以下のコードを使用する必要があります:
$user_dispatches = Disspath::paginate(8);
Dispatch::where('user_id', auth()->user()->id)->paginate(10);
メソッドall()
を削除する必要があります:
_$user_dispatches = Dispatch::where('user_id', Auth::id())->paginate(10);
_
all()
はCollection
を返し、paginate()
はBuilder
を使用したため