Пусть у меня есть users,courses
и course_users
таблицы, пользователи принадлежит многим курсам и структура сводной таблицы course_users
как ниже:Laravel 5 `` belongsToMany` с wherePivot` красноречивым запрос не работает должным образом
| user_id | course_id | Отношение_тип |
| --------------------------------------------- - |
теперь у меня есть сильфон код:
$user = User:find(1);
и я сильфон функция в user
модели:
public function courses(){
return $this->belongsToMany('App\Models\Course')->wherePivot('relation_type', 1)->orWherePivot('relation_type', 0)->withPivot('relation_type', 'created_at', 'updated_at');
}
и если я хочу, чтобы получить курс пользователя:
$user->courses();
Но выходной запрос выше функции похож:
select
`courses`.*, `course_user`.`user_id` as `pivot_user_id`,`course_user`.`course_id` as `pivot_course_id`,
`course_user`.`relation_type` as `pivot_relation_type`,`course_user`.`created_at` as `pivot_created_at`, `course_user`.`updated_at` as `pivot_updated_at`
from
`courses` inner join `course_user` on `courses`.`id` = `course_user`.`course_id`
where
`course_user`.`user_id` = '1' and `course_user`.`relation_type` = '0' or `course_user`.`relation_type` = '1';
Но мне нужно что-то вроде этого:
select
`courses`.*, `course_user`.`user_id` as `pivot_user_id`, `course_user`.`course_id` as `pivot_course_id`,
`course_user`.`relation_type` as `pivot_relation_type`, `course_user`.`created_at` as `pivot_created_at`, `course_user`.`updated_at` as `pivot_updated_at`
from
`courses` inner join `course_user` on `courses`.`id` = `course_user`.`course_id`
where
`course_user`.`user_id` = '1' and (`course_user`.`relation_type` = '0' or `course_user`.`relation_type` = '1');
Разница в where
п.