Laravel 5.4 Eloquent 关系问题
Laravel 5.4 Eloquent Relationship Issue
我需要澄清我对 Eloquent 关系的疑虑。我有 2 个模型用户(Laravel 附带),其他是我创建的角色。
在迁移中,我添加了 role_id 作为附加列,因为我希望每个用户现在都必须拥有一个角色 我想根据用户的 id 检索用户角色所以,我在里面创建了一个名为 roles 的 public 函数用户模型。
public function roles(){
return $this->belongsTo(Role::class);
}
现在,当我尝试 运行 这样的查询时。
App\User::find(1)->roles;
它不会 return 任何结果,只是空屏幕但是当我将其更改为
public function role(){
return $this->belongsTo(Role::class);
}
之后我运行代码
App\User::find(1)->role;
现在 returnid 为 1 的用户在其中具有适当角色的确切行。令人困惑的是,为什么 roles() 函数不起作用,而 role() 函数起作用了。
抱歉,如果这个问题已经发布,你可以将我重定向到那个问题。
谢谢!
您必须指定外键
public function roles()
{
return $this->belongsTo(Role::class, 'role_id');
}
但是,将其称为 role() 更为准确,因为您假设用户只能拥有一个角色。
我需要澄清我对 Eloquent 关系的疑虑。我有 2 个模型用户(Laravel 附带),其他是我创建的角色。 在迁移中,我添加了 role_id 作为附加列,因为我希望每个用户现在都必须拥有一个角色 我想根据用户的 id 检索用户角色所以,我在里面创建了一个名为 roles 的 public 函数用户模型。
public function roles(){
return $this->belongsTo(Role::class);
}
现在,当我尝试 运行 这样的查询时。
App\User::find(1)->roles;
它不会 return 任何结果,只是空屏幕但是当我将其更改为
public function role(){
return $this->belongsTo(Role::class);
}
之后我运行代码
App\User::find(1)->role;
现在 returnid 为 1 的用户在其中具有适当角色的确切行。令人困惑的是,为什么 roles() 函数不起作用,而 role() 函数起作用了。
抱歉,如果这个问题已经发布,你可以将我重定向到那个问题。
谢谢!
您必须指定外键
public function roles()
{
return $this->belongsTo(Role::class, 'role_id');
}
但是,将其称为 role() 更为准确,因为您假设用户只能拥有一个角色。