как получить противоположные результаты по запросу Laravel

Как получить противоположные результаты из запроса SELECT

Ниже мой запрос

$fod = FodMap::select('*') ->where('fructose_level', $fructose == 1 ? '=' : '>=', $fructose) ->where('lactose_level', $lactose == 1 ? '=' : '>=', $lactose) ->where('polyols_level', $polyols == 1 ? '=' : '>=', $polyols) ->where('fructan_level', $fructan == 1 ? '=' : '>=', $fructan) ->get(); 

Я хочу получить все, что не подпадает под вышеуказанный запрос. Помощь

Для создания отрицательного выражения в Laravel используйте выражение whereNotIn .

laravel.io

Хорошо, я подумал о вашем вопросе в течение некоторого времени, и я думаю, что решение не так сложно, как вы просили сначала (когда я сначала прочитал его, я подумал, что вы хотите перевернутый результат).

  1. В одном из ваших комментариев вы написали:

выше результатов дает список продуктов, которые пользователь не может есть .. что я хочу, чтобы получить результаты, которые не соответствуют выше

  1. Я читал о уровнях фруктозы и т. Д. В двух словах уровни выше 1 плохие, менее 1 – хорошие.

Таким образом, решение слишком просто:

 $fod = FodMap::select('*') ->where('fructose_level', '<', $fructose) ->where('lactose_level', '<', $lactose) ->where('polyols_level', '<', $polyols) ->where('fructan_level', '<', $fructan) ->get(); 

Кроме того, тройные операторы в вашем исходном запросе не имеют смысла, потому что предложение вроде:

 ->where('fructose_level', $fructose == 1 ? '=' : '>=', $fructose) 

всегда будет работать как:

 ->where('fructose_level', '>=', $fructose) 

Думаю об этом.