我对Laravel非常陌生,在这里我有一个简单的问题。我需要将另一个表添加到以下
return $products = Product::where('product_type_id', 1)
->where('quantity', '>=', 50)
->where('deleted', 0)
->orderBy('price')
->paginate(100);
我还有另一个表名称product_img,用于存储产品的所有图像。需要获取所有记录,其中product_img表中有产品ID且文件不等于“ Noimg.jpg”。我尝试了其他解决方案,但没有成功。如何在Laravel中联接两个表?
我尝试执行以下操作:
$products = Product::leftJoin('product_img', function($join) {
$join->on('products.id', '=', 'product_img.product_id')
->where('product_img.file', '!=', 'Noimg.jpg');
}) ;
->where('quantity', '>=', 100)
->where('deleted', 0)
->orderBy('price')
->paginate(100);
答案 0 :(得分:1)
$products = Product::join('product_img', 'products.id', '=', 'product_img.product_id')
->where('product_img.file', '!=', 'Noimg.jpg')
->where('quantity', '>=', 100)
->where('deleted', 0)
->orderBy('price')
->paginate(100);
答案 1 :(得分:0)
在SQL中,“不等于”的正确符号是<>,对于编程语言,!=是正确的符号。
$products = Product::join('product_img', function($join) {
$join->on('products.id', '=', 'product_img.product_id')
->where('product_img.file', '<>', 'Noimg.jpg');
}) ;
->where('quantity', '>=', 100)
->where('deleted', 0)
->orderBy('price')
->paginate(100);