问题:我正在尝试查询 PeopleType 以查找与人员无关的所有课程。我有 4 张桌子人们人员类型培训班People_CoursesPeopleType_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();我的回复:完整性约束违规:IN/ALL/ANY 子查询中的 1052 列“id”不明确人员课程表示意图Schema::create('People_Courses', function (Blueprint $table) { $table->increments('id'); $table->integer('course_id'); $table->integer('person_id'););PeopleType_Courses 表示意图Schema::create('PeopleType_Courses', function (Blueprint $table) { $table->increments('id'); $table->integer('course_id'); $table->integer('people_type_id'););
1 回答
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
当您处理在查询中选择了相似列名的关系时,您需要通过指定列的表名来解决歧义。例如:
$peopleType->getCourses()->whereNotIn('courses.id', function($q)... //courses.id
- 1 回答
- 0 关注
- 174 浏览
添加回答
举报
0/150
提交
取消