I'm trying to do a where query on my relation called employee_label.
The table employee_label looks like this:
+----+-------------+----------+
| id | employee_id | label_id |
+----+-------------+----------+
| 1 | 123 | 123 |
| 2 | 456 | 456 |
| 3 | 768 | 768 |
+----+-------------+----------+
The other where() and orWhere() get passed an empty array() by default, but could contain data as for example: ['inactive' => 0].
Expected result:
I expect to only receive the employees with for example label 123 when I provide label 123 as where() for the relation.
Actual result:
All employees are returned, the data is not filtered.
Code:
$employees = Employee::with(['employee_label' => function($query) use ($request) {
$query->where('label_id', '=', $request->get('label'));
}])->where($searchQuery)->orWhere($orQuery)->orderBy('inactive', 'asc')->paginate(20);
What I've tried:
I've tried to change the $query->where('label_id') to $query->where('employee_label.label_id') with no change in the result.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire