2016-10-06 1 views
1

Ich verwende Komponisten Zizaco/entrust und Laravel 5.3 ‚s Auth aus dem Kasten heraus,Laravel 5.3 und Zizaco/betrauen: Feld ‚expired_at‘ hat keinen Standardwert

ich die Methode create von RegisterController.php wie folgt geändert :

protected function create(array $data) 
{ 
    $user =User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
    ]); 
    $user->roles()->attach($data['role']); 
    return $user; 
} 

Die ursprüngliche Methode create ist wie folgt:

protected function create(array $data) 
{ 
    return User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
    ]); 
} 

Wenn ich einen Benutzer mit dem modifizierten Verfahren registriere, gibt es 2 Probleme:

1 ist ein Fehler auf Tabelle role_user:

SQLSTATE[HY000]: General error: 1364 Field 'expired_at' doesn't have a default value (SQL: insert into `role_user` (`role_id`, `user_id`) values (2, 5)) 

2, andere Frage ist, auf dem Tisch users, das Feld remember_token von Tabelle users ist null.

+0

_expired_at_ kein hat Standardwert, so dass Sie es beim Zuweisen einer neuen Rolle selbst festlegen müssen. – Erik

Antwort

2

Es ist nicht in der users Tabelle. es ist auf role_user Tabelle.

Wenn Sie die Migration auf role_user setzen nullable auf expired_at Spalte sollte es lösen.

Oder

Sie können Ihre database.php unter Config-Ordner bearbeiten. und setzen strict zu false.

Für Frage Nummer 2: Sie müssen daran denken setzen, wenn Versuch:

if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) { 
    // The user is being remembered... 
} 

für mehr Informationen über sie: https://laravel.com/docs/5.3/authentication#remembering-users

standardmäßig remember_token nullable ist

+0

Frage 1 ist auf 'role_user' und Frage 2 ist auf' Benutzer'. – zwl1619

+0

Frage 1 ist in Ordnung, Danke! Zu Frage 2, was soll ich tun? – zwl1619

+0

Fügen Sie '$ table-> string ('remember_token', 100) -> nullable();' in 'user' Tabelle für Frage: 2 hinzu. –

Verwandte Themen