I have a category with 2 levels. And I want to be able to let the user do a search based on those. The problem is that it needs to be AND
between all level 1 categories, and OR
within child categories. So let's say I have a category structure like this:
- Elevator
- Air condition
- View
- Ocean
- Mountains
- Garden
Now when a user selects elevator
, ocean
and mountains
I want to return all entries that have elevator AND (ocean OR mountains)
I tried this: $entries->categories(['and', 695, ['or', 698, 697]]);
, but that doesn't work, as it seems to just skip the ['or', 698, 697]
part.
Edit for bounty: In addition to the reason given above, there is also a change in the requirement since we added multiple categories. So for one category group, the operator needs to be OR
, and some groups should have AND
.