如何解决违反完整性约束的问题:laravel中where子句不明确的1052列'id'

时间:2019-11-23 16:40:47

标签: php laravel

我在学生和系之间有 belongsToMany 关系。 现在,我要获取系的subject_id为null的所有学生系。我在下面的代码,但它给我以下错误

  

SQLSTATE [23000]:违反完整性约束:1052 where子句中的列'id'不明确(SQL:departments中的select *其中subject_id为空且存在(select {from {{1 }} students上的department_student内部联接。students = iddepartment_student其中student_iddepartments = {{1} }。iddepartment_student = 16且department_idid为空))

students

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

您应在引用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();