为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel HasMany WhereNotIn Query

Laravel HasMany WhereNotIn Query

PHP
蛊毒传说 2022-08-05 15:50:28
问题:我正在尝试查询人员类型以查找未关联人员的所有课程。我有 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();我的回答:完整性约束冲突:1052 IN/ALL/ANY 子查询中的列“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贡献1772条经验 获得超5个赞

在处理在查询中选择的具有相似列名的关系时,需要通过在列中指定表名来解决多义性。例如:

$peopleType->getCourses()->whereNotIn('courses.id', function($q)...  //courses.id


查看完整回答
反对 回复 2022-08-05
  • 1 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信