gpt4 book ai didi

php - 完整性约束违规 : 1048 Column 'user_id' cannot be null error occurs when assigning roles (Laravel 5. 3)

转载 作者:行者123 更新时间:2023-11-29 01:36:37 25 4
gpt4 key购买 nike

Here's what I was doing before the error occurred

我正在尝试为我的 usersroles 表中名为“role_users”的新表中的用户分配角色。

Role.php模型

class Role extends Model{  
public function users(){
return $this->belongsToMany('App\User','role_users', 'role_id', 'user_id');
}
}

User.php模型

class User extends Model implements Authenticatable
{
use \Illuminate\Auth\Authenticatable;

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

我的 AccountController.php

不断收到此行中的错误
$roleuser = new User;
$user_superadmin = Role::where('role_desc', 'Superadmin')->first();
$roleuser->roles()->attach($user_superadmin); /*this line specifically*/

我有违反完整性约束:1048列“user_id”不能为空(SQL:插入“role_users”(“role_id”,“user_id”)值(1,))users 表 已更新,user_id 已保存到数据库中。

有人可以帮助我吗?我一定是忽略了一些重要的东西。

最佳答案

这里的问题是你没有将角色附加到任何现有用户,你只是运行:

$roleuser = new User;

创建不保存到数据库的用户对象。

你应该做这样的事情:

$roleuser = User::find(1); // find user with id 1
$user_superadmin = Role::where('role_desc', 'Superadmin')->first();
$roleuser->roles()->attach($user_superadmin); /*this line specifically*/

$roleuser = User::create(['name' => 'Sample user']); // create sample user
$user_superadmin = Role::where('role_desc', 'Superadmin')->first();
$roleuser->roles()->attach($user_superadmin); /*this line specifically*/

你也不应该在这里使用 $roleuser 变量,因为它显然是 $user

关于php - 完整性约束违规 : 1048 Column 'user_id' cannot be null error occurs when assigning roles (Laravel 5. 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41245657/

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