Avatar ·

Laravel Eloquent: 如何构建包含 OR 和 AND 组合的复杂 WHERE 条件?

大家好!我是 Laravel 和 Eloquent 的新手,在构建同时使用 OR 和 AND 的复杂 SQL WHERE 条件查询时遇到了问题。 我有一个 `products` 表,包含字段:`status`、`category_id`、`price`、`is_featured`。我需要选择满足以下两个条件之一的商品: 1. 商品处于活动状态(status = 'active')且价格低于 1000(price < 1000); 2. 或者商品是精选商品(is_featured = 1)且属于 id = 5 的分类(category_id = 5)。 也就是说,在 SQL 中它看起来像这样: ```sql SELECT * FROM products WHERE (status = 'active' AND price < 1000) OR (is_featured = 1 AND category_id = 5); ``` 我尝试在 Eloquent 中使用 `where()` 和 `orWhere()`,但结果一团糟。例如: ```php $products = Product::where('status', 'active') ->where('price', '<', 1000) ->orWhere('is_featured', 1) ->where('category_id', 5) ```