sql >> Base de Datos >  >> RDS >> Mysql

Violación de restricción de integridad:1048 La columna 'user_id' no puede ser un error nulo al asignar roles (Laravel 5.3)

El problema aquí es que no asigna un rol a ningún usuario existente, simplemente ejecuta:

$roleuser = new User;

para crear un objeto de usuario que no se guarde en la base de datos.

Deberías hacer algo como esto:

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

o

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

Tampoco deberías usar $roleuser variable aquí, porque obviamente es $user