我有一个用户模型,适用于培训师和学生。在我的业务逻辑中,培训师将学生分配到某个单元,因此我建立了他们之间的多对多关系
public function students()
{
return $this->belongsToMany(User::class, 'trainer_student',
'trainer_id','student_id');
}
public function trainers()
{
return $this->belongsToMany(User::class, 'trainer_student','student_id', 'trainer_id');
}
用户模型中的两者。我检查了数据库,有8名学生与某个单位的培训师有关。
所以我用Tinker做了这个查询:
$trainer = User::findOrFail(21);
$trainer->students()->pluck('id');
但如果我像往常一样查询:
DB::table('trainer_student')->where('trainer_id',21)->pluck('student_id')
发生了什么事?为什么这种关系表明学生较少?我做错了什么?
谢谢!