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

php – Laravel 5查询关系导致“调用成员函数addEagerConstraints()on null”错误
我一直在尝试创建一个简单的用户管理系统,但在查询关系时不断遇到障碍.例如,我有用户和角色,每当我尝试对所有用户及其角色进行查询时,我都会收到错误消息.标题中的那个只是我遇到过的最新版本.

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

class Role extends Model { public function users() { $this->belongsToMany('\App\User', 'fk_role_user', 'role_id', 'user_id'); } }
class User extends Model { public function roles() { $this->belongsToMany('\App\Role', '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('\App\Role', 'fk_user_role', 'user_id', 'role_id'); }

public function roles() { return $this->belongsToMany('\App\Role', 'role_user', 'user_id', 'role_id'); }

转载于:https://www.cnblogs.com/agang-php/p/10564008.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值