Php Laravel 5.4雄辩的关系问题
我需要澄清我对有说服力的人际关系的怀疑。我有两个模型用户(与Laravel一起提供),另一个是我创建的角色。 在迁移中,我添加了role_id作为附加列,因为我希望每个用户都必须有一个角色。现在,我希望根据用户的id检索用户角色。因此,我在用户模型中创建了一个名为roles的公共函数Php Laravel 5.4雄辩的关系问题,php,laravel-5,relationship,laravel-eloquent,Php,Laravel 5,Relationship,Laravel Eloquent,我需要澄清我对有说服力的人际关系的怀疑。我有两个模型用户(与Laravel一起提供),另一个是我创建的角色。 在迁移中,我添加了role_id作为附加列,因为我希望每个用户都必须有一个角色。现在,我希望根据用户的id检索用户角色。因此,我在用户模型中创建了一个名为roles的公共函数 public function roles(){ return $this->belongsTo(Role::class); } 现在,当我尝试像这样运行查询时 App\
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()函数起作用
对不起,如果这个问题已经发布,您可以将我重定向到那个问题
谢谢大家! 您必须指定外键
public function roles()
{
return $this->belongsTo(Role::class, 'role_id');
}
但是,称之为role()更准确,因为您假设一个用户只能有一个角色。是的,我知道每个用户都有一个角色,但我的问题是,为什么roles()不起作用,但role()在您回答并在roles()函数中加入第二个参数role\u id后也起作用。但这背后的逻辑是什么?雄辩的,默认情况下会寻找fk:roles\u id