игнорировать значение $ request == null

0

Это моя таблица

| id|lvl1_name  |lvl2_name|lvl3_name  |value
| 1 |Fruit      |Apple    | USA       |20
| 2 |Fruit      |Apple    | England   |30
| 3 |Fruit      |Manggo   | USA       |45
| 4 |Fruit      |Manggo   | England   |15
| 5 |vegetable  |Spinach  | USA       |20
| 6 |vegetable  |Spinach  | England   |30

Это мой контроллер:

$parameters_id = Fruits::where('lvl1_name', $request->lvl1)
            ->where('lvl2_name', $lvl2)
            ->select('id')->pluck('id');

Если мой запрос: $request->lvl1 = "Fruit" и $request->lvl2 = "Apple" покажет все яблоко

мой вопрос: если мой запрос $request->lvl1 = "Fruit" и $request->lvl2 = null

Как показать все "Фрукты" без выбора варианта на lvl2?

  • 0
    попробуйте WhereNull('lvl2_name') вместо where
  • 0
    не работает @ Dr.Strange
Теги:

1 ответ

2
Лучший ответ

Вы можете использовать, when нужно запускать оператор where если установлена переменная.

$parameters_id = Fruits::where('lvl1_name', $request->lvl1)
    ->when($lvl2, function($query, $lvl2) {
        $query->where('lvl2_name', $lvl2);
    })
    ->select('id')->pluck('id');

Он доступен по https://laravel.com/docs/5.6/queries#conditional-clauses

Иногда вы можете требовать, чтобы предложения применялись к запросу только тогда, когда что-то еще истинно. Например, вам может потребоваться применить оператор where, если заданное входное значение присутствует во входящем запросе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню