Mysql
 sql >> Base de données >  >> RDS >> Mysql

Violation de contrainte d'intégrité :1048 La colonne 'user_id' ne peut pas être nulle, une erreur se produit lors de l'attribution de rôles (Laravel 5.3)

Le problème ici est que vous n'attachez aucun rôle à un utilisateur existant, vous exécutez simplement :

$roleuser = new User;

pour créer un objet utilisateur qui n'est pas enregistré dans la base de données.

Vous devriez plutôt faire quelque chose comme ceci :

$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*/

ou

$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*/

Vous ne devriez pas non plus utiliser $roleuser variable ici, car il s'agit évidemment de $user