首页 > 解决方案 > 使用选择子查询计算其他表数据并显示在php laravel的主表中

问题描述

我有两个表作为类别和产品。我必须从表格产品中计算类似数据并在表格类别中显示计数。我在 laravel 中使用此查询来显示类别详细信息。

$data = CategoryModel::orderBy('id','ASC')->get();

在核心 php 中,我使用以下查询来显示表 1 中的计数数据。

SELECT tbl_category.*,(SELECT COUNT(*) FROM tbl_product
WHERE tbl_product.v_category = tbl_category.v_name) AS TOTAL FROM tbl_category

现在我想在 laravel 中实现上述查询。我怎样才能做到这一点 ?

标签: phpmysqllaraveleloquent

解决方案


我需要更多详细信息,但我假设产品映射到多个类别,因此将有一个名为 Category 的模型文件映射到表类别,并且将 Product.php 模型文件映射到 products 表

您控制的以下代码段将有所帮助

App\Product::withCount('categories')->get()

请确保在您的 Product.php(模型文件)中有以下内容

public function categories()
{
    return $this->hasMany('\App\Category');
}

请注意,与产品关联的类别计数将在集合中返回为 categories_count


推荐阅读