Laravel 搜索查询在所有情况下都不会得到结果,即使它应该
Posted
技术标签:
【中文标题】Laravel 搜索查询在所有情况下都不会得到结果,即使它应该【英文标题】:Laravel search query doesn't get results in all cases even though it should 【发布时间】:2021-09-18 14:33:39 【问题描述】:public function find(Request $request)
$validatedData = $request->validate([
'search' => 'required|max:255',
]);
$item = $request->search;
$data = DB::table('products')
->join('categories','products.category_id','categories.id')
->join('subcategories','products.sub_category_id','subcategories.id')
->join('sub_of_subcategories','products.sos_category_id','sub_of_subcategories.id')
->select('products.*','categories.slug','categories.category_name','subcategories.sub_category_name','sub_of_subcategories.sub_of_sub_category_name')
->where('products.product_name','LIKE',"%$item%")
->orWhere('products.product_code',$item)
->orWhere('categories.category_name','LIKE',"%$item%")
->orWhere('subcategories.sub_category_name','LIKE',"%$item%")
->orWhere('sub_of_subcategories.sub_of_sub_category_name','LIKE',"%$item%")
->orWhere('products.product_description','LIKE',"%$item%")
->paginate(40);
return response()->json($data);
当我按产品名称或产品代码或产品描述搜索时,它会显示结果。但是,如果我按类别名称或子类别名称搜索,那么它会显示一个空数组。 我该如何解决这个问题?
【问题讨论】:
dd()
你的$data
变量,看看会发生什么。如果它为空,那么你必须修改你的查询。
【参考方案1】:
您的加入查询错误,您必须像这样将=
登录到join
函数中
->join('categories', 'products.category_id', '=', 'categories.id')
->join('subcategories', 'products.sub_category_id', '=', 'subcategories.id')
->join('sub_of_subcategories', 'products.sos_category_id', '=', 'sub_of_subcategories.id')
希望它会起作用
编码愉快..
laravel join defination
【讨论】:
以上是关于Laravel 搜索查询在所有情况下都不会得到结果,即使它应该的主要内容,如果未能解决你的问题,请参考以下文章
Laravel QueryBuilder - 相同查询的 `where()` 和 `whereRaw()` 结果不同