php - Laravel 查询生成器 (5.6)
问题描述
您好,我正在尝试将此 SQL 代码复制到 Laravel qBuilder 中,但我没有在集合中得到我想要的结果:
select chars.name, class.name, specs.name
FROM characters as chars
JOIN charclasses as class
JOIN charspecs as specs
WHERE chars.class_id = class.id
AND chars.spec_id = specs.id
然后我在 Laravel 中尝试了这个:
$charData = DB::table('characters')
->select('characters.*', 'charclasses.name', 'charspecs.name')
->join('charclasses', 'characters.class_id', '=', 'charclasses.id')
->join('charspecs', 'characters.spec_id', '=', 'charspecs.id')
->orderBy('user_id', 'ASC')
->get();
dd($charData);
结果是:
解决方案
问题是您选择了三个具有相同名称的字段。这些字段被添加到 php 代码中的数组中,但数组字段被覆盖两次,因为关联数组中不能有重复的键。如果要选择这三个名称,则必须给它们另一个名称。
$charData = DB::table('characters')
->select('characters.*', 'charclasses.name as charclassname', 'charspecs.name as charspecname')
->join('charclasses', 'characters.class_id', '=', 'charclasses.id')
->join('charspecs', 'characters.spec_id', '=', 'charspecs.id')
->orderBy('user_id', 'ASC')
->get();
dd($charData);
推荐阅读
- wordpress - Woocommerce 会员资格将会员资格限制为一个会员资格
- java - 为什么 mockito 认为我的服务被调用了两次?
- python - 在 pandas 中打印时删除索引、名称、d_type 和“”
- javascript - 从 HTML 表单输入中解析 docx
- visual-studio-code - 如何重置被 vi 破坏的 VS Code 终端?
- android - ViewHolder 中 ImageView 的位置使用 .getLeft() 返回 0。如何在 ViewHolder 中获取 ImageView 的位置
- excel-formula - PowerBI - 用本周计算上周数据
- python - Python based on .txt file
- java - 在 Postman 中工作的 HTTP 查询在 Spring Boot Apache Camel 3.1 中不起作用
- python - 如何让我的代码使用定义的函数验证文件中的每一行