【发布时间】:2020-12-10 21:34:22
【问题描述】:
我的数据库中有 3 个表。
前两个表只是带有 ID 和其他一些列的普通表,例如:
表 1
| ID | col01 |
|---|---|
| 1 | ... |
| 2 | ... |
表 2
| ID | col01 |
|---|---|
| 1 | ... |
| 2 | ... |
第三个表是某种关系/赋值表:
表 3
| ID | table1_id | table2_id | text |
|---|---|---|---|
| 1 | 1 | 1 | .. |
| 2 | 1 | 2 | .. |
| 3 | 1 | 3 | .. |
| 4 | 2 | 1 | .. |
| 5 | 3 | 3 | .. |
现在我确实有一个 SQL 语句,它完全符合我的要求:
SELECT * FROM table_3 where (table1_id, table2_id) in ( (1, 1), (2, 1), (3, 3));
所以我向 API 发送以下请求正文:
{
"assignments": [
{
"table1_id": 1,
"table2_id": 1
},
{
"table1_id": 2,
"table2_id": 1
},
{
"table1_id": 3,
"table2_id": 3
}
]
}
我确实验证了我的请求
->validate($request,
[
'assignments' => 'required|array',
'assignments.*.table1_id' => 'required|integer|min:1|max:20',
'assignments.*.table2_id' => 'required|integer|min:1|max:20'
]
现在我有点坚持如何使用雄辩的命令(例如 whereIn)来获得我想要的输出。
提前致谢!
编辑
所以我采用了这里提到的 arcanedev-maroc 的解决方法:https://github.com/laravel/ideas/issues/1021
并根据我的要求对其进行了编辑。
像魅力一样工作。
【问题讨论】:
-
您说您有一个有效的原始 SQL 查询,在您的最后一句话中您谈到了雄辩。您需要 eloquent 还是可以明智地构建原始查询代码?
-
您是否建立了模型和关系?