gpt4 book ai didi

php - Laravel 5 使用关系查询导致 "Call to a member function addEagerConstraints() on null"错误

转载 作者:IT老高 更新时间:2023-10-28 12:58:16 24 4
gpt4 key购买 nike

我一直在尝试创建一个简单的用户管理系统,但在查询关系时一直遇到障碍。例如,我有 usersroles,每当我尝试查询所有用户及其角色时,都会出现错误。标题中的只是我遇到的最新的一个。

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

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');
});
}

然后我尝试在 Controller 中获取所有记录及其关系:

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');
}

关于php - Laravel 5 使用关系查询导致 "Call to a member function addEagerConstraints() on null"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31546081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com