如何使用子查询计算 Laravel 中的产品图片
How to use Subquery for Count Product Images in Laravel
我是 Laravel 的新手,如何使用 Laravel Eloquent.
进行以下 mysql 查询
SELECT p.*,
(
SELECT COUNT(*) FROM product_images AS pi WHERE pi.productID = p.productID
)AS totalImages
FROM products AS p
您可以使用 DB::raw
将子查询注入 select:
Product::from('products p')
->select(DB::raw('p.*, (SELECT COUNT(*) FROM product_images AS pi WHERE pi.productID = p.productID) AS totalImages'));
也可以选择在 Product
模型和 Image
模型之间建立 one-to-many 关系:
class Product extends Eloquent {
public function images()
{
return $this->hasMany('Image');
}
}
之后您可以像这样获取图像数:
Product::find($productId)->images()->count();
我是 Laravel 的新手,如何使用 Laravel Eloquent.
进行以下 mysql 查询SELECT p.*,
(
SELECT COUNT(*) FROM product_images AS pi WHERE pi.productID = p.productID
)AS totalImages
FROM products AS p
您可以使用 DB::raw
将子查询注入 select:
Product::from('products p')
->select(DB::raw('p.*, (SELECT COUNT(*) FROM product_images AS pi WHERE pi.productID = p.productID) AS totalImages'));
也可以选择在 Product
模型和 Image
模型之间建立 one-to-many 关系:
class Product extends Eloquent {
public function images()
{
return $this->hasMany('Image');
}
}
之后您可以像这样获取图像数:
Product::find($productId)->images()->count();