【问题标题】:Laravel: Eloquent RelationshipLaravel:雄辩的关系
【发布时间】:2015-03-14 19:29:53
【问题描述】:

我有三个表“users”、“roles”和“role_users”。显然,用户表没有任何 role_id 字段。因此,用户与角色的映射通过具有 role_id 和 user_id 字段在“role_users”表中维护。

我需要在模型用户和角色中编写什么关联来获取特定角色的所有用户的列表,例如“老师”?

这是我目前在用户模型中所做的:

public function teachers() {
    return $this->has_many('Role')->where('name','teacher');
}

这不起作用,但我不明白我将如何在这个模型中建立关系。

【问题讨论】:

    标签: laravel laravel-4 eloquent relationship


    【解决方案1】:

    Laravel docs - many to many relation

    public function teachers() {
        return $this->belongsToMany('Role')->where('name','teacher');
    }
    

    【讨论】:

    • 好的,但是当我在控制器中调用此方法时,例如 $users = User::with('teachers');回声“
      ”; print_r($users);出口;然后页面继续加载,没有结果显示。似乎正在进行一些无限循环。我还需要在角色模型中写任何东西吗?请建议
    • 这可能是因为在这种情况下print_r 的输出非常非常大......对于调试,请尝试使用$users->toJson()$users->toArray() 代替
    • toArray() 是 eloquent 的内置函数吗?
    • 能否发个聊天邀请详细讨论?
    • 你可能想做这样的事情:User::has('teachers')->get()。这只会获取具有teacher 角色的用户。
    猜你喜欢
    • 2018-11-28
    • 2015-01-11
    • 2021-06-03
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多