[英]Laravel Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous
[英]How to solve Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous in laravel
我在学生和部门之间有一个belongsToMany关系。 现在我想获取部门的 subject_id 为 null 的所有学生部门。 我在下面的代码,但它给了我以下错误
SQLSTATE [23000]:完整性约束违规:1052 where 子句中的列 '
id
' 不明确(SQL:从subject_id
为空且存在的departments
中选择 *(从students
内部连接department_student
的students
中选择 *。id =department_student
student_id
wheredepartments
)id
=department_student
department_id
和id
= 16 和students
deleted_at
为空))
$departments=Department::where('subject_id','=',null)
->whereHas('students',function($student){
$student->where('id',Auth::id());
})
->get();
dd($departments);
任何帮助将不胜感激
您应该指定引用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();
我们也可以这样使用
->whereHas('students',function($student){
$student->where('student.id', '=', Auth::id()); //Like this
})->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.