Heim  >  Artikel  >  Datenbank  >  Warum erhalte ich die Fehlermeldung „Feld ‚user_id' hat keinen Standardwert', wenn ich in Laravel 5.4 eine neue Übereinstimmung erstelle?

Warum erhalte ich die Fehlermeldung „Feld ‚user_id' hat keinen Standardwert', wenn ich in Laravel 5.4 eine neue Übereinstimmung erstelle?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 19:54:03420Durchsuche

Why am I getting the error

Fehler: „Feld ‚user_id‘ hat keinen Standardwert“ in Laravel 5.4

Frage:

Beim Versuch, eine neue Übereinstimmung mithilfe eines Deal-Objekts zu erstellen, tritt der folgende Fehler auf:

QueryException in Connection.php line 647:
SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value (SQL: insert into matches (deal_id) values (1))

Warum wird dieser Fehler ausgelöst, obwohl ein leeres $guarded-Array vorhanden ist?

Antwort:

Das $guarded-Array verhindert die Massenzuweisung zu allen Feldern außer den explizit genannten. Um das Problem zu beheben, entfernen Sie das $guarded-Array und definieren Sie stattdessen das $fillable-Array.

Lösung:

Fügen Sie in der Match-Klasse Folgendes hinzu:

protected $fillable = ['user_id', 'deal_id'];

Dies ermöglicht eine Massenzuweisung zu den Feldern „user_id“ und „deal_id“, die zum Erstellen einer neuen Übereinstimmung erforderlich sind.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Feld ‚user_id' hat keinen Standardwert', wenn ich in Laravel 5.4 eine neue Übereinstimmung erstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn