I want to get all user’s favourite products. The query should be like this:
x
SELECT *
FROM products
WHERE id IN (SELECT id FROM favourites WHERE user_id == Auth::id())
How can I query with eloquent?
Advertisement
Answer
You’re trying to achieve something like this:
In the oficial documentation you can find the explanation of Advanced where clauses
DB::table('products')
->whereIn('id', function($query)
{
$query->select('id')
->from('favourites')
->where('favourites.user_id', Auth::id());
})
->get()
The final result will be (you can see this dumping the query using toSql() method instead of get()) :
select * from `products` where `id` in (select `id` from `favourites` where `favourites`.`user_id` = ?)