zoukankan      html  css  js  c++  java
  • php – Laravel 5查询关系导致“调用成员函数addEagerConstraints()on null”错误( 转载)

    php – Laravel 5查询关系导致“调用成员函数addEagerConstraints()on null”错误

    我一直在尝试创建一个简单的用户管理系统,但在查询关系时不断遇到障碍.例如,我有用户和角色,每当我尝试对所有用户及其角色进行查询时,我都会收到错误消息.标题中的那个只是我遇到过的最新版本.

    我的用户和角色模型如下所示:

    class Role extends Model
    {
        public function users()
        {
            $this->belongsToMany('AppUser', 'fk_role_user', 'role_id', 'user_id');
        }
    }
    class User extends Model
    {
        public function roles()
        {
            $this->belongsToMany('AppRole', 'fk_user_role', 'user_id', 'role_id');
        }
    }

    我的迁移表中两者之间的多对多关系如下所示:

    public function up()
        {
            Schema::create('role_user', function (Blueprint $table) {
                $table->increments('id');
                $table->integer('user_id')->unsigned()->nullable(); //fk => users
                $table->integer('role_id')->unsigned()->nullable(); //fk => roles
    
                $table->foreign('fk_user_role')->references('id')->on('users')->onDelete('cascade');
                $table->foreign('fk_role_user')->references('id')->on('roles')->onDelete('cascade');
            });
        }

    然后我尝试在控制器中获取他们关系的所有记录:

    public function index()
    {
        $users = User::with('roles')->get();
    
        return $users;
    }

    所以我需要另一双眼睛告诉我这里我缺少什么?

    您缺少定义关系的方法中的return语句.他们需要返回关系定义.

    更换

    public function roles()
    {
        $this->belongsToMany('AppRole', 'fk_user_role', 'user_id', 'role_id');
    }

    public function roles()
    {
        return $this->belongsToMany('AppRole', 'role_user', 'user_id', 'role_id');
    }
  • 相关阅读:
    C#中静态变量 静态类 静态成员
    C#类型转换
    ASP.NET页面跳转及传值方式
    ADO.NET
    C#方法的参数类型
    Oracle %TYPE 和 %ROWTYPE
    静态页面与动态页面
    相对路径和绝对路径
    45 个非常有用的 Oracle 查询语句(转)
    ASP.NET MVC 之表格分页
  • 原文地址:https://www.cnblogs.com/agang-php/p/10564008.html
Copyright © 2011-2022 走看看