Laravel eloquent 模型关系

普拉富拉·库马尔·萨胡

我的应用程序建立在

Laravel: 5.6.35
PHP 7.2.4
Entrust: 1.9

我的榜样

class Role extends EntrustRole
{
    public function permissions()
    {
        return $this->belongsToMany(Permission::class);
    }

    public function users()
    {
        return $this->hasMany(User::class);
    }
}

我的用户模型是

class User extends Authenticatable
{
    public function role()
    {
        return $this->belongsTo(Role::class);
    } 
}

现在你可以在 Tinker 中注意到

D:\work\www\myapp>php artisan tinker
Psy Shell v0.9.7 (PHP 7.2.4 — cli) by Justin Hileman
>>> App\models\Role::find(1)->users()->get()
Illuminate/Database/QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.role_id' in 'where clause' (SQL: select * from `users` where `users`.`role_id` = 1 and `users`.`role_id` is not null)'
>>> App\User::find(1)->role()->get();
=> Illuminate\Database\Eloquent\Collection {#2937
     all: [],
   }
>>> App\User::find(1)->roles()->get();
=> Illuminate\Database\Eloquent\Collection {#2941
     all: [
       App\models\Role {#2930
         id: 1,
         name: "super-admin",
         display_name: "Super Admin",
         description: "This will be one permission, that can not be assigned or modified.",
         created_at: "2018-09-07 12:11:35",
         updated_at: "2018-09-07 12:11:35",
         pivot: Illuminate\Database\Eloquent\Relations\Pivot {#2927
           user_id: 1,
           role_id: 1,
         },
       },
     ],
   }

我得到了 的结果App\User::find(1)->roles(),但我的用户模型有函数role(),空集合App\User::find(1)->role()和错误App\models\Role::find(1)->users()

所以请给出一些想法,如何解决这个问题?

普拉富拉·库马尔·萨胡

我想我在这里找到了我的问题的答案。如果您在模型中通过 hasMany 和belongsTo 正确定义了关系,但没有在模型的表中提供外键谁属于其他表,则您的关系将不起作用。在文档中,它也建议使用 foreign_key 来使用一对多关系。

Entrust 数据库设计基于多对多关系。这样用户就可以拥有多个角色。如 Laravel文档中所述

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel Eloquent 模型之间的关系

来自分类Dev

获得 Laravel eloquent 模型关系

来自分类Dev

laravel 5.6 Eloquent:eloquent 关系模型创建问题

来自分类Dev

Laravel Eloquent-访问二级模型关系

来自分类Dev

Laravel Eloquent:如何从与函数模型的关系中添加条件

来自分类Dev

Eloquent / Laravel:嵌套的延迟渴望加载,但返回多个模型的关系

来自分类Dev

laravel 5.8 eloquent:有很多关系模型

来自分类Dev

Laravel - 与 Order By 内部查询的 Eloquent 模型关系不起作用

来自分类Dev

Laravel Eloquent 关系

来自分类Dev

Laravel 3 表 Eloquent:关系

来自分类Dev

Laravel Eloquent 连接表关系

来自分类Dev

Laravel Eloquent "with" 返回与 limit 的关系

来自分类Dev

Laravel Eloquent模型的临时属性

来自分类Dev

渴望在Laravel和Eloquent中加载渴望加载到模型中的关系(受保护的$ with)

来自分类Dev

Laravel / Eloquent-按模型的关系排序而不使用表名

来自分类Dev

Laravel / Eloquent-具有morphToMany关系的多对多枢轴模型

来自分类Dev

使用Laravel Eloquent获取多对多关系中非链接模型的列表

来自分类Dev

在Laravel Eloquent中查询关系内的关系

来自分类Dev

laravel eloquent store 子模型和模型

来自分类Dev

嵌套模型的 Laravel 模型关系

来自分类Dev

Laravel类别模型关系

来自分类Dev

Laravel中的关系模型?

来自分类Dev

Laravel 4模型关系

来自分类Dev

Laravel中的模型关系

来自分类Dev

Laravel与多个模型的关系

来自分类Dev

Laravel 模型中的关系

来自分类Dev

Laravel 模型关系 hasOne

来自分类Dev

Laravel Eloquent-关系上的firstOrCreate()

来自分类Dev

Laravel Eloquent-关于Morph关系的sync()

Related 相关文章

热门标签

归档