laravel根据取中间表数据进行查询

存在限制条件不在显示表中,在关联的中间表中,提取中间表数据进行搜索查询:

    public function index(Request $request)
    {
        $where = function ($query) use ($request) {
            if ($request->has('name') and $request->name != '') {
                $search = "%" . $request->name . "%";
                $query->where('name', 'like', $search);
            }//本表查询

            if ($request->has('category_id') and $request->category_id != '-1') {
                $product_id=DB::table('category_product')->where('category_id',$request->category_id)->pluck('product_id');//取中间表数据
                if(count($product_id)>0)
                {
                    $query->where('id',$product_id);
                }else{
                    $query->where('id',-1);
                }
            }

        };
        $products = Product::with('categories', 'brand')->where($where)->get();
//        return $products;
        return view('admin.shop.product.index')->with('products', $products);
    }

猜你喜欢

转载自blog.csdn.net/weixin_43674113/article/details/84585066