Ich möchte wissen, ob es möglich ist, die Constraint-Verletzung beim Erstellen eines Benutzers zu überspringen oder zu ignorieren. Ich habe ein Benutzermodell mit einem Fremdschlüssel address_id
.Laravel Überspringen der Constraint-Verletzung beim ersten Erstellen des Modells
Schema::table('user', function($table) {
$table->foreign('address_id')->references('address_id')->on('address')->onDelete('cascade');
});
Nach Erstellen eines Benutzers ich möchte ohne Adresse eines Benutzers erstellen noch die später hinzugefügt werden.
return User::create([
'first_name' => $data['firstname'],
'last_name' => $data['lastname'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
aber daher die Einschränkung der Beschränkung. Es ist möglich, dies zu tun?
EDIT:
So würde Ich mag die Beschränkungen halten, aber das obige Beispiel läuft in eine Einschränkungsverletzung so was der beste Weg, dies zu umgehen ist? Einen Dummy-Adresseintrag erstellen?
Danke, ich möchte nicht ignorieren, wie du gesagt hast, aber ich weiß nicht, wie man es umgeht. Es ist ein Registrierungsformular mit nur diesen Feldern: Vorname, Nachname, E-Mail und Passwort. Ich möchte, dass die Beschränkungen halten, aber nicht, wie in diesem Beispiel, schlimmsten Fall würde es überspringen wie Ihr Beispiel. – Jacob
Wenn ein Benutzer keine Adresse haben muss, warum ist es eine Einschränkung? –
@chaseenyc, ich bin ein wenig neu, Sie haben wahrscheinlich Recht, ich dachte, es wäre eine gute Praxis, um die Datenbank eng zu halten. Das ist einfach nicht möglich, weil dafür Einschränkungen gemacht werden. – Jacob