特定のユーザーが閲覧したすべての投稿を取得するためにLaravelにクエリを書きたいと思います。 user_id
とpost_id
はWatchHistory
という名前のテーブルに保存されます。Eloquentを使用してLaravelに次のSQLクエリを書くにはどうすればよいですか?
SELECT *
FROM Post
WHERE post_id = (
SELECT post_id
FROM WatchHistory
WHERE user_id = $user_id
);
私は次のことを試してみました:
$posts = Post::whereIn('post_id', function($query){
$query->select('post_id')
->from(with(new WatchHistory)->getTable())
->where('user_id',$user_id);
})->get();
しかし、変数のuser_idが定義されていないことを私にエラーを与えます。
POST::whereIn('post_id', function($query) use($user_id){
$query->select('post_id')
->from(with(new WATHCHISTORY)->getTable())
->where('user_id',$user_id);
})->get();
・ホープ、この作品のために:
このクエリは正しいですか? 'WHERE user_id = user_id'とは何ですか? –