У меня есть 3 таблицы, включая один стержень в моем Laravel 5,3 проектаКак найти сводную таблицу для нескольких матчей с И условия
рабочих мест
+----+----------------------+
| id | title |
+----+----------------------+
| 1 | PHP Developer |
| 2 | JavaScript Developer |
| 3 | UI Developer |
+----+----------------------+
навыки
+----+-------+
| id | title |
+----+-------+
| 1 | PHP |
| 2 | js |
| 3 | CSS |
| 4 | HTML |
+----+-------+
job_skill (сводная таблица)
+--------+----------+
| job_id | skill_id |
+--------+----------+
| 1 | 1 |
| 1 | 2 |
| 1 | 4 |
| 2 | 2 |
| 3 | 3 |
| 3 | 4 |
+--------+----------+
У меня есть belongsToMany отношения, определенные в местах работы и навыки моделей. Теперь мне нужно сопоставить все задания с несколькими навыками.
, например
skills[]=php => [PHP Developer]
skills[]=js => [JavaScript Developer]
skills[]=HTML =>[PHP Developer, UI Developer]
skills[]=HTML,CSS => [UI Developer]
Я попытался с whereHas
в красноречив, но так как я должен использовать AND
между навыками, он не возвращается ничего
$jobs = Post::whereHas('skills', function ($query) {
foreach($skills as $skill) {
$query->where('name', '=', $skill);
}
})->get();
Пожалуйста, укажите мне в правильном направлении, либо с красноречивым или SQL-решение
Вы уже знаете, как достичь ожидаемого результата, используя чистые SQL-запросы? – Dragos
Нет, я имею в виду не только 15 символов – laradev
Привет, ты там –