【发布时间】:2022-01-18 05:38:32
【问题描述】:
我有 4 个表,分别是用户表、规则表、rule_requests 表和 rule_employee 表。查找下表。
用户表
| id | name |
|---|---|
| 10 | test1 |
| 12 | test2 |
| 13 | test3 |
规则
| id | active |
|---|---|
| 1 | true |
| 2 | true |
规则请求
| rule_id | request_type |
|---|---|
| 1 | Normal leave |
| 2 | Sick leave |
规则员工表
| id | user_id |
|---|---|
| 1 | 10 |
| 2 | 12 |
我要做的是只返回请求正常休假的用户,并且返回查询必须选择 request_type 列,因为我需要在本地化中使用它
我尝试使用此查询
Employee::where('department_id', $data['department_id'])
->whereIn('users.id', $data['employees_ids'])
->whereHas('rules', function($emp) use ($data) {
$emp->join('rule_request_type', 'rule_request_type.rule_id', 'rules.id')
->select('request_type_id')
->whereIn('request_type_id',$data['requests_ids']);
}
)
->get();
我必须使用子查询,所以我无法检索 request_type_id 匹配案例。
【问题讨论】:
-
您能否简要解释一下您的 Eloquent 模型关系?目前尚不清楚这些表是如何相关的。