LaravelのEloquentORMのさまざまな関数と、それらが返すものに混乱しています。私はブログの投稿モデルを持っています-次のいずれかを書くと、すべての投稿の配列が返されます:
$posts = Post::all();
$posts = Post::get();
$posts = Post::with('user')->all();
ただし、他のメソッドをチェーンすると、機能しません。たとえば、これにより、未処理の例外エラーが発生します。「メソッド[all]はQueryクラスで定義されていません。」
$posts = Post::with('user')->order_by('updated_at', 'desc')->all();
また、paginate関数を使用すると、一連の結果がまったく得られません。
$posts = Post::with('user')->order_by('updated_at', 'desc')->paginate(5);
// index.blade.php
@foreach ($posts as $post)
{{ $post->id }}
@endforeach
「非オブジェクトのプロパティを取得しようとしています」というエラーが表示されます。データはにあり$posts->results
、ではないことがわかり$posts
ます。
これはすべて非常に紛らわしいです!どうすればこれに頭を悩ませることができますか?これらの各関数は何を返し、どのように正しくチェーンしますか?