【发布时间】:2019-04-24 13:38:04
【问题描述】:
我想使用具有多个条件的 laravel eloquent 从 4 个不同的表中检索数据。
我的桌子概览;
表 1
- 身份证
- 姓名
表 2
- 身份证
- 姓名
- 年
- table1_id
表 3
- 身份证
- 姓名
- 说明
- table2_id
表 4
- 身份证
- 姓名
- 季度
- table3_id
下面是他们的关系
表 1
hasMany -> table 2
表 2
belongsTo ->table1
HasMany->table2
表 3
belongsTo ->table2
HasMany->table3
表 4
belongsTo ->table3
我想用两个参数通过资源显示获取数据 我试过这个
$Report = Table1::whereHas('tabke1', function($query){
$query->where('year', 'like','%'.$year.'%');
})
->with('table2')->whereHas('table3', function($query){
$query->where('quarter', 'like', '%'.$quarters.'%');
})
->get();
但我收到语法错误。
如何使用多个过滤器从多个表中检索数据? 我尝试了这个表查询以了解更多我的期望
SELECT `table1`.*, `table2`.*, `table3`.*, `table4`.*
FROM `table1`, `table2`, `table3`, `table4`
WHERE ((`table2`.* year = 2019) AND (`table4`.* quarter = 1))
【问题讨论】:
-
语法错误是什么?
-
调用未定义的方法 App\tabl1::table4()