Heim >Backend-Entwicklung >PHP-Tutorial >Anpassung von Modelldatumformaten in Laravel

Anpassung von Modelldatumformaten in Laravel

Karen Carpenter
Karen CarpenterOriginal
2025-03-07 01:13:09673Durchsuche

Customizing Model Date Formats in Laravel

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.

Die Serialisierungsfunktion von

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!

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
Vorheriger Artikel:So verwenden Sie PHP in HTMLNächster Artikel:So verwenden Sie PHP in HTML