我有兩個Course
和User
模型,它們之間存在ManyToMany關係。wherePivot laravel method and「in」operator
而且有一個名爲course_user
透視表有這樣的額外列:
course_id
user_id
status
score
status
柱舉行一個整數值,顯示在課程中註冊用戶的登陸狀態。
現在我想獲取特定用戶的所有課程,其中具有特定的course_id
,並且其狀態包含至少一個數組值。
對於我寫了這個:
$user->courses()
->where('course_user.course_id', $course->course_id)
->wherePivot('status', 'not in', [1, 3, 10])
->count()
但是,這並不工作,不會返回我的期望。
即使我試着從所示wherePivot方法不能正常工作,而忽略not in
SQL操作上面的代碼生成的SQL。返回低於sql:
"select * from `courses` inner join `course_user` on `courses`.`course_id` = `course_user`.`course_id` where `course_user`.`user_id` = ? and `course_user`.`course_id` = ? and `course_user`.`status` != ? and `courses`.`deleted_at` is null"
什麼是問題,我該如何解決這個問題?