Laravel关系多对多不正确的返回计数

时间:2018-05-03 16:29:35

标签: php laravel eloquent

我有一个用户模型,适用于培训师和学生。在我的业务逻辑中,培训师将学生分配到某个单元,因此我建立了他们之间的多对多关系

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名学生与某个单位的培训师有关。

"trainer_student" Table Photo

所以我用Tinker做了这个查询:

$trainer = User::findOrFail(21);
$trainer->students()->pluck('id');

Output

但如果我像往常一样查询:

DB::table('trainer_student')->where('trainer_id',21)->pluck('student_id')

Output

发生了什么事?为什么这种关系表明学生较少?我做错了什么?

谢谢!

0 个答案:

没有答案