0

関係 (1 対多) の条件を指定できるようにする必要があります。

例は; 多くのコメントを持つ投稿がありますが、ユーザー A が作成したコメント付きの投稿のみが必要であり、投稿オブジェクトを返します。

私が現在これを行う唯一の方法は、Fluent クエリを使用することです。これでは、希望する Post オブジェクトが返されません!

編集:

コメントユーザー A によって作成されたものでなければなりません。投稿するコメントを作成したユーザーの関係は直接的なものではありません。コメント テーブルを通過します。

再編集:

個別の投稿があると言うことができますか? 同じ投稿オブジェクトを 3 つ返すのではなく?

4

1 に答える 1

7

関係を照会できます。次のような結果になります。

$postsWithComments = $user->posts()->has('comments', '>=', 1)->get();

ドキュメントからの抜粋は次のとおりです。http://laravel.com/docs/eloquent

リレーションのクエリ

モデルのレコードにアクセスするとき、関係の存在に基づいて結果を制限したい場合があります。たとえば、少なくとも 1 つのコメントがあるすべてのブログ投稿をプルしたいとします。これを行うには、has メソッドを使用できます。

選択時に関係を確認する

$posts = Post::has('comments')->get();

演算子とカウントを指定することもできます:

$posts = Post::has('comments', '>=', 3)->get();
于 2013-08-22T09:31:44.980 に答える