php - 使用选择子查询计算其他表数据并显示在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 中实现上述查询。我怎样才能做到这一点 ?
解决方案
我需要更多详细信息,但我假设产品映射到多个类别,因此将有一个名为 Category 的模型文件映射到表类别,并且将 Product.php 模型文件映射到 products 表
您控制的以下代码段将有所帮助
App\Product::withCount('categories')->get()
请确保在您的 Product.php(模型文件)中有以下内容
public function categories()
{
return $this->hasMany('\App\Category');
}
请注意,与产品关联的类别计数将在集合中返回为 categories_count
推荐阅读
- flutter - 我如何在颤动中制作透明的appBar
- go - 为什么 golang 的 RSA 签名结果和 OpenSSL 命令的结果不一样?
- python - 在 Pandas 中将十进制数转换为日期时间
- java - 如何使 saveAll 结果返回可分页?
- typescript - 当“@”用于打字稿类组件模板中的事件绑定时,Vetur 未正确读取函数名称
- python - 小部件中输入的值不会更新
- sql - 有没有办法比较两个表的纬度/经度
- java - 如何使用 jgrapht 创建子图
- javascript - 如何从 javascript 文件 insize 脚本标签访问变量?
- javascript - GraphQL - “[用户]”类型的字段“x”必须有一个子字段选择。你的意思是“x{ ... }