【发布时间】:2020-01-04 04:22:54
【问题描述】:
这个 Eloquent 查询似乎没有按预期工作。
如果我传入一个术语然后是类别然后是制造商,它会按预期工作,但只输入制造商会产生零结果,制造商也是如此。
这是我的网址... /products?term=12&category=2&manufacturer=3
这里是 toSql() 的转储
"select * from products where id = ? or model like ? or category_id = ? or manufacturer_id = ?"
$term = $request->input('term');
$category = $request->input('category');
$manufacturer = $request->input('manufacturer');
$products = Product::orWhere('id', $term)
->orWhere('model', 'like', "%{$term}%")
->orWhere('category_id', $category)
->orWhere('manufacturer_id', $manufacturer)
->get();
难倒,任何帮助将不胜感激。
【问题讨论】:
-
如果
url... /products?manufacturer=3怎么办? -
有趣的是,如果我只是在 url 中传递制造商或类别,它会返回所有结果,这是否意味着它永远不会到达 orWhere 调用?
-
是否有任何一个参数是强制性的...?
-
如果term不为空,有没有办法只调用
->orWhere('model', 'like', "%{$term}%")?