Php 如何解决完整性约束冲突:laravel中where子句中的1052列“id”不明确

Php 如何解决完整性约束冲突:laravel中where子句中的1052列“id”不明确,php,laravel,Php,Laravel,我在学生和系里有着亲密的关系。现在我想获取所有系的学生,其中系的subject_id为空。我在下面的代码,但它给了我以下的错误 SQLSTATE[23000]:完整性约束冲突:where子句中的1052列“id”不明确SQL:select*来自subject\u id为null且存在的部门select*从学生内部加入学生上的部门学生。id=部门学生。学生id其中部门。id=部门学生。部门id=16,学生。已删除空的 任何帮助都将不胜感激您应该指定引用id的表名,以避免歧义 $department

我在学生和系里有着亲密的关系。现在我想获取所有系的学生,其中系的subject_id为空。我在下面的代码,但它给了我以下的错误

SQLSTATE[23000]:完整性约束冲突:where子句中的1052列“id”不明确SQL:select*来自subject\u id为null且存在的部门select*从学生内部加入学生上的部门学生。id=部门学生。学生id其中部门。id=部门学生。部门id=16,学生。已删除空的


任何帮助都将不胜感激

您应该指定引用id的表名,以避免歧义

$departments=Department::where('subject_id','=',null)
->whereHas('students',function($student){ 
      $student->where('student.id',Auth::id()); //Notice the student.id instead of id
  })->get();

您应该指定引用id的表名,以避免歧义

$departments=Department::where('subject_id','=',null)
->whereHas('students',function($student){ 
      $student->where('student.id',Auth::id()); //Notice the student.id instead of id
  })->get();

是的,它解决了问题,但我认为我将从关系中得到表名,这就是为什么我没有使用它。是的,它解决了问题,但我认为我将从关系中得到表名,这就是为什么我没有使用它