php - 在 Laravel 中,我的表列被连接覆盖,我该如何解决?
问题描述
我的应用程序中有一个小问题...
我想从产品表中获取所有产品以及类别表中的类别名称,并从 products_attribute 表中获取每个产品的库存...
问题是产品表 id 被覆盖products_attribute ID。在 product_attributes 表中,只有 116 行,但 products 表有 177 行,循环仅获得 116 行的 products_attribute id。
Product Table
(截屏)
Product Attributes Table
(截屏)
Categories Table
(截屏)
public function viewProducts(Request $request)
{
$products = Product::join('categories', 'categories.id', 'products.category_id')->join('products_attributes', 'products_attributes.product_id', 'products.id')->get();
$products = json_decode(json_encode($products));
return view('admin.products.view_products')->with(compact('products'));
}
解决方案
Laravel 连接函数默认为内连接,因此您需要使用该leftJoin
方法。(见\vendor\laravel\framework\src\Illuminate\Database\Query\Builder@join
)
推荐阅读
- reactjs - 以编程方式将图像导入 ReactJS?
- sas - SAS 中的条件合并
- c - C中双因子方程的尾递归
- python - padding_idx 在 nn.embeddings() 中做了什么
- git - ssh -vvvT git@github.com 有时卡在 debug1: Connecting to github.com port 22
- redux - 如何从 redux 工具包中获取动作类型
- node.js - 机器人响应后触发意图
- python - 为什么我的多选表单字段只提交一个值 Django?
- linux - 连接安装了 Ubuntu 的 Azure Linux VM 从 powershell 抛出主机验证失败。. . 错误
- reactjs - 如何指向 webpack 从 localhost:3000 获取数据?目前它取自网址