Проблема: Я пытаюсь запросить PeopleType, чтобы найти все курсы, с которыми человек не связан.
У меня 4 таблицы
- People
- PeopleTypes
- Курсы
- People_Courses
- PeopleType_Courses
У меня следующие отношения
МОДЕЛЬ ЧЕЛОВЕКА
public function getPeopleType() {
return $this->belongsTo('App\PeopleType','type_id');
}
public function getCourses() {
return $this->belpngsToMany('App\Course','People_Courses','person_id','course_id');
}
МОДЕЛЬ PEOPLE_TYPE
public function getPeople() {
return $this->hasMany('App\Person','type_id');
}
public function getCourses() {
return $this->belpngsToMany('App\Course','PeopleType_Courses','people_type_id','course_id');
}
Моя попытка:
$peopleType = \App\PeopleType::FindOrFail(1);
$courses = $peopleType->getCourses()->whereNotIn('id', function($q) use($person) {
$q->select('course_id')
->from('People_Courses')
->where('person_id', $person->id);
})->get();
Мой ответ:
Нарушение ограничения целостности: 1052 Идентификатор столбца в IN / ALL / ANY подзапросе неоднозначен
People Cours Table Schemati c
Schema::create('People_Courses', function (Blueprint $table) {
$table->increments('id');
$table->integer('course_id');
$table->integer('person_id');
);
PeopleType_Courses Table Schemati c
Schema::create('PeopleType_Courses', function (Blueprint $table) {
$table->increments('id');
$table->integer('course_id');
$table->integer('people_type_id');
);