laravel bietet mehrere Möglichkeiten, das Format von Daten zu steuern, wenn das Modell in ein Array oder JSON serialisiert wird. Von der globalen Formatierung bis zur Anpassung bestimmter Eigenschaften können Sie die Konsistenz der Datumsanzeige während der gesamten Anwendung sicherstellen.
Folgendes ist ein Beispiel für die Festlegung des globalen Datumsformats in der Basisklasse:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use DateTimeInterface; class BaseModel extends Model { protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } }
Schauen wir uns ein praktisches Beispiel für die Verwaltung verschiedener Datumsformate im Buchungssystem an:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Casts\Attribute; use DateTimeInterface; class Booking extends Model { protected $casts = [ 'check_in' => 'datetime:Y-m-d', 'check_out' => 'datetime:Y-m-d', 'created_at' => 'datetime:Y-m-d H:i:s', ]; protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } protected function checkInFormatted(): Attribute { return Attribute::make( get: fn () => $this->check_in->format('l, F j, Y') ); } protected function duration(): Attribute { return Attribute::make( get: fn () => $this->check_in->diffInDays($this->check_out) ); } public function toArray() { return array_merge(parent::toArray(), [ 'check_in_formatted' => $this->checkInFormatted, 'duration_nights' => $this->duration, 'human_readable' => sprintf( '%s for %d nights', $this->check_in->format('M j'), $this->duration ) ]); } }
Dieses Beispiel zeigt, wie ein Datum für eine bestimmte Eigenschaft mithilfe der Eigenschaft $casts
und wie ein benutzerdefiniertes Zubehör mithilfe der Attribute
-Klasses erstellt wird, um ein formatiertes Datum und eine formatierte Dauer zu generieren. Die toArray()
-Methode zeigt, wie diese benutzerdefinierten Eigenschaften zur Array -Darstellung des Modells hinzugefügt werden.
Laravel sorgt für die Konsistenz der Datumsformate in der gesamten Anwendung und bietet gleichzeitig Flexibilität für bestimmte Anwendungsfälle.
Das obige ist der detaillierte Inhalt vonAnpassung von Modelldatumformaten in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!