我需要清除对雄辩关系的怀疑 . 我有两个模型用户(Laravel附带)和其他是我创建的角色 . 在迁移中,我添加了role_id作为附加列,因为我希望每个用户都必须拥有一个角色我现在想要根据用户的id检索用户角色,因此,我在用户模型中创建了一个名为roles的公共函数 .
public function roles(){
return $this->belongsTo(Role::class);
}
现在,当我尝试运行这样的查询 .
App\User::find(1)->roles;
它不会返回任何结果,只是空屏幕,但当我将其更改为
public function role(){
return $this->belongsTo(Role::class);
}
之后我运行代码
App\User::find(1)->role;
现在它返回id为1的用户具有适当角色的确切行 . 令人困惑的是,为什么使用roles()函数它没有工作,但是使用了role()函数 .
抱歉,如果此问题已发布,您可以将我重定向到该问题 .
谢谢!
1 回答
您必须指定外键
但是,将其称为role()更准确,因为您假设用户只能拥有一个角色 .