Here's what I was doing before the error occurredIntegrität Einschränkungsverletzung: 1048 Spalte ‚user_id‘ kann nicht null Fehler sein tritt auf, wenn Rollen (Laravel 5.3) Zuordnung
Ich versuche, eine Rolle für einen Benutzer aus der Liste meiner users
und roles
Tabelle in einer neuen Tabelle zuweisen namens `role_users '.
Role.php Modell
class Role extends Model{
public function users(){
return $this->belongsToMany('App\User','role_users', 'role_id', 'user_id');
}
}
User.php Modell
class User extends Model implements Authenticatable
{
use \Illuminate\Auth\Authenticatable;
public function roles(){
return $this->belongsToMany('App\Role', 'role_users', 'user_id', 'role_id');
}
}
Ich halte den Fehler in dieser Zeile aus meinem AccountController.php bekommen
$roleuser = new User;
$user_superadmin = Role::where('role_desc', 'Superadmin')->first();
$roleuser->roles()->attach($user_superadmin); /*this line specifically*/
Ich habe Integrity constraint violation: 1048 Column 'user_id' cannot be null (SQL: insert into 'role_users' ('role_id', 'user_id') values (1,))
. Die users table
ist bereits aktualisiert und die user_id
wurde bereits in der Datenbank gespeichert.
Kann mir jemand helfen? Ich muss einige wichtige Dinge übersehen haben.
MY Schema Sinn Kribbeln . Sollte ein "Benutzer" nicht viele Rollen haben, statt zu gehören? – scottevans93
Sie meinen hasMany stattdessen verwenden? Ja, ich habe das letzte Nacht benutzt. Aber ich bekomme einen 'Call to undefined Methode Illuminate \ Database \ Query \ Builder :: attach()' Fehler. Es sollte auf beiden Seiten eine "anyToMany" -Beziehung haben. – Eggnog654
Es macht keinen Sinn. In Beziehungen gehören Modell A zu Modell B und Modell B zu vielen Modell A. Dass sie beide zu einander gehören, scheint gegen das Prinzip zu verstoßen. – scottevans93