Ich habe gerade einen Fehler mit Eloquent's (Laravel 5.2.10) Standard-Zeitstempeln gefunden. Standardmäßig gibt Ihnen die $table->timestamps()
Methode eine created_at
und eine updated_at
Spalte in Ihrer Tabelle, die entsprechend aktualisiert werden.Laravel Eloquent created_at wird aktualisiert
Allerdings, wenn ich einige Testeinträge versuche, bemerkte ich, dass, wenn Sie einen Datensatz aktualisieren, das updated_at
Feld aktualisiert wird, wie es soll, aber das created_at
Feld auch bekommt aktualisiert: seine Stunden am erstellten Zeit bleibt , aber die Minuten und Sekunden werden aktualisiert, um dem Feld updated_at
zu entsprechen.
Wenn das zu wortreich war, hier ein Beispiel:
+---------------------+---------------------+
| created_at | updated_at |
+---------------------+---------------------+
| 2016-01-13 17:13:27 | 2016-01-13 22:13:27 |
| 2016-01-13 16:14:41 | 2016-01-13 21:14:41 |
+---------------------+---------------------+
Beachten Sie, dass die Minuten und Sekunden sind genau das gleiche für das created_at
und updated_at
Feld.
Ich habe versucht, durch die Klasse zu sehen, wo die Zeitstempel gesetzt sind, aber es stellt sich heraus, setCreatedAt()
Methode wird in der Tat nicht aufgerufen, wenn nur einen Datensatz aktualisieren.
Warum passiert das? Wie kann ich verhindern, dass sich das Feld created_at
ändert? (Wichtiger)
Ich habe ein 'Composer-Update' ausgeführt, das mich zu 5.2.10 brachte, aber die Methode' timestamps() 'funktionierte immer noch nicht richtig.Die 'nullableTimestamps()' funktioniert jedoch gut, also werde ich das für jetzt verwenden (Das Problem, auf das Sie mich hingewiesen haben, schien darauf hinzuweisen, dass dies das '' tempestamps() '' - Verhalten wird, aber im Moment funktioniert es immer noch nicht Für mich jedenfalls, danke! – tam5
@tam Entschuldigung, vor 5 Stunden (Laravel 5.2.9+) wurden die Änderungen zurückgesetzt, so dass 'useCurrent()' nicht das Standardverhalten ist und einige Probleme mit Leuten verursacht hat wer benutzt eine ältere Version von MySQL –
kein Problem, Danke für die Alternative und Erklärungen – tam5