2 回答

TA貢獻1804條經驗 獲得超3個贊
您當前正在搜索任何用戶得分不超過 2 的測驗。
你需要的是whereDoesntHave代替:
$quiz = Quiz::with('questions.answers')
->whereDoesntHave('scores', function ($query) use ($user) {
$query->where('user_id', $user->id);
})
->whereDate('date_playable', '=', $date)
->first();
您要查詢$user的實例在哪里。App\User

TA貢獻1846條經驗 獲得超7個贊
可以有多種方法來實現這一結果。我正在考慮在測驗和用戶之間創建多對多關系,以分數作為中間表。
User
{
public function quizzes()
{
return $this->belongsToMany(Quiz::class, 'scores');
}
}
然后獲得所需的測驗:
$quiz = Quiz::with('questions.answers')
->whereKeyNot($user->quizzes()->pluck('id')->all())
->whereDate('date_playable', '=', $date)
->first();
- 2 回答
- 0 關注
- 249 瀏覽
添加回答
舉報