我对Laravel来说有些新鲜,并且一直在搜索文档,并且没有找到符合我需要的答案。
我试图在产品数据库上运行灵活的搜索查询。
因此人们可以按名称或搜索进行搜索。但是不能把某些领域留空。
因此,当输入为空时,我只需将其替换为"否(字段)输入"。
我的搜索查询必须首先检查该字段是否为空,如果不是,则需要按给定的参数进行过滤。
我正在做的快速SQL表示就是这个。
$results = DB::connection('sqlsrv')->select("SELECT TOP 500 * from dbo.SimpleOrderView
WHERE ('". $name ."' = 'NoNameEntered' OR Name LIKE '%". $name ."%')
AND ('". $sku ."' = 'NoSkuEntered' OR Sku LIKE '%". $sku ."%')
AND ('". $description ."' = 'NoDescriptionEntered' OR ShortDescription LIKE '%". $description ."%')");
所以查询很乱,但按预期工作。我想用Eloquent来清理它并使它按照预期的方式运行。
提前致谢。
答案 0 :(得分:0)
public function search(Request $request)
{
$inputs = $request->only('name', 'sku', 'description');
$query = Class:take(500);
foreach ($inputs as $key => $value)
{
$new_key = ucfirst($key);
$new_value = "%{$value}%";
if (empty($input))
$query->where("No{$new_key}Entered", 'like', $new_value);
else
$query->where($new_key, $new_value);
}
return $query->get();
}
这应该可以解决问题