【问题标题】:Laravel search query doesn't get results in all cases even though it shouldLaravel 搜索查询在所有情况下都不会得到结果,即使它应该
【发布时间】: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 变量,看看会发生什么。如果它为空,那么你必须修改你的查询。

标签: php laravel laravel-7 laravel-query-builder


【解决方案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

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 2014-06-04
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多