多个表的Laravel雄辩关系

时间:2019-01-30 10:50:57

标签: laravel eloquent relationship

我的数据库中有3个表:UsersBiodataRoles

UsersRoles与数据透视表role_user有关。 Users的角色为student & employer

我希望所有具有角色student的用户也拥有biodata。 我尝试了很多次,但是找不到解决方案。希望你们帮助我

$users = User::with('roles')->with('biodata')->get();

3 个答案:

答案 0 :(得分:0)

尝试一下:

$users = User::with('biodata')->whereHas('roles', function($query) {
    $query->where('name', 'student');
})->get();

答案 1 :(得分:0)

使用whereHas,用于实时查询where。

$users = User::whereHas('roles', function ($query) {
    $query->where('name', '=', 'student');
})->with('biodata')->get();

答案 2 :(得分:0)

您要寻找的是:$user = User::with('roles', 'biodata')->get();