Laravel 5.4: Fehler „Feld hat keinen Standardwert“
Problem:
Sie erhalten die Fehlermeldung „Feld ‚user_id‘ hat keinen Standardwert“, wenn Sie versuchen, ein neues Match-Objekt über ein Deal-Objekt zu erstellen. In Ihrer Match-Klasse ist das $guarded-Array auf ein leeres Array festgelegt, aber das löst das Problem nicht.
Lösung:
Der Fehler deutet darauf hin, dass die Datenbanktabelle für Übereinstimmungen erfordern einen Wert ungleich Null für die Spalte „user_id“. Um dieses Problem zu beheben, aktualisieren Sie Ihre Match-Klasse, um ausfüllbare Felder anstelle von geschützten Feldern anzugeben:
protected $fillable = ['user_id', 'deal_id'];
Erklärung:
In Laravel sind dies standardmäßig alle Felder bewacht, d. h. sie können nicht massenhaft zugewiesen werden. Dies dient der Vermeidung von Sicherheitslücken. Durch die Definition eines ausfüllbaren Arrays geben Sie an, welche Felder massenweise zugewiesen werden können. In diesem Fall sind die Felder „user_id“ und „deal_id“ die einzigen, die beim Erstellen eines neuen Match-Objekts festgelegt werden können.
Durch die Verwendung des ausfüllbaren Arrays anstelle des geschützten Arrays ermöglichen Sie, dass das Feld „user_id“ festgelegt wird beim Erstellen eines neuen Matches. Dadurch wird der Fehler behoben und Sie können erfolgreich neue Übereinstimmungen erstellen.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Laravel 5.4 die Fehlermeldung „Feld hat keinen Standardwert', wenn ich ein Match-Objekt erstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!