首页 文章

Laravel 5.4雄辩的关系问题

提问于
浏览
0

我需要清除对雄辩关系的怀疑 . 我有两个模型用户(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 回答

  • 1

    您必须指定外键

    public function roles()
    {
        return $this->belongsTo(Role::class, 'role_id');
    }
    

    但是,将其称为role()更准确,因为您假设用户只能拥有一个角色 .

相关问题