这是我的table
| 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
?
1条答案
按热度按时间mcvgt66p1#
你可以用
when
只运行where
语句(如果设置了变量)。它在下面有售https://laravel.com/docs/5.6/queries#conditional-条款
有时您可能希望子句仅在其他内容为真时应用于查询。例如,如果传入请求中存在给定的输入值,则可能只希望应用where语句。