Aktueller Standort: Startseite> Neueste Artikel> Laravel -Feld Formatierung und Modellfeldtypumwandlungsmethoden

Laravel -Feld Formatierung und Modellfeldtypumwandlungsmethoden

gitbox 2025-07-29

Was ist Feldformatierung

Die Feldformatierung bezieht sich auf die Konvertierungs- oder Verarbeitungsfelder in Datenbanktabellen, um bestimmte Formatierungsanforderungen zu erfüllen. Im Laravel -Framework können wir die Feldtyp -Konvertierungsmethode des Modells verwenden, um die Feldformatierung zu implementieren.

Feldtyp -Konvertierungsmethode

Feldtypkonvertierung

Laravel bietet eine leistungsstarke Eigenschaft $ Casts, die Modellfelder in bestimmte Datentypen umwandelt. Das Definieren der Eigenschaft $ casts im Modell kann automatisch Felder in der Datenbank in den von uns benötigten Datentyp umwandeln.

 
$casts = [
    'birthday' => 'date:Y-m-d',
    'enabled' => 'boolean',
];

// Verwenden Sie konvertierte Felder
echo $model->birthday;  // Ausgabe 2022-01-01
echo $model->enabled;   // Ausgabe true

Im obigen Code-Beispiel wird das Geburtstagsfeld in das Datumsformat 'YM-D' konvertiert und das aktivierte Feld in den Booleschen Typ konvertiert.

Custom -Feldkonvertierung

Laravel kann nicht nur das Attribut für $ casts für die Typ -Konvertierung verwenden, sondern ermöglicht auch eine komplexere Feldkonvertierung durch benutzerdefinierte Zubehör und Modifikatoren.

Zubehör

Der Accessor ermöglicht es uns, eine benutzerdefinierte Verarbeitung durchzuführen, wenn Feldwerte abgerufen werden. Zum Beispiel können wir das Datumfeld in ein bestimmtes Zeichenfolgenformular formatieren.

 
public function getBirthdayAttribute($value)
{
    return date('YJahrmMonddTag', strtotime($value));
}

// Mit dem Accessor
echo $model->birthday;   // Ausgabe 2022Jahr01Mond01Tag

Das obige Code formatiert das Geburtstagsfeld in Form von "Y Year M Month D Day" von der GetBirthdayAttribute -Methode.

Modifikator

Modifikatoren werden verwendet, um Feldwerte vor dem Speichern von Daten zu verarbeiten. Zum Beispiel können wir das String -Datumsformat in das von der Datenbank erforderliche Standarddatumformat konvertieren.

 
public function setBirthdayAttribute($value)
{
    $this->attributes['birthday'] = date('Y-m-d', strtotime($value));
}

// Verwenden Sie den Modifikator
$model->birthday = '2022Jahr01Mond01Tag';
$model->save();

Der obige Code ändert den Wert des Geburtstagsfeldes in das "YMD" -Format über die SetBirthdayAttribute -Methode und speichert es der Datenbank.

Anwendungsszenarien für die Feldformatierung

Datum Formatierung

In der tatsächlichen Entwicklung ist es häufig erforderlich, das Datumsfeld zu formatieren, um das Datumsformat zu erfüllen, das den Anforderungen des Projekts entspricht. Laravel bietet eine bequeme Möglichkeit, Datumsfelderformate zu konvertieren.

 
$casts = [
    'birthday' => 'date:Y-m-d',
];

public function getBirthdayAttribute($value)
{
    return date('YJahrmMonddTag', strtotime($value));
}

public function setBirthdayAttribute($value)
{
    $this->attributes['birthday'] = date('Y-m-d', strtotime($value));
}

Der obige Code konvertiert zunächst den Datentyp des Geburtstagsfeldes in das Datumsformat 'YM-D' und verwendet dann den Accessor und den Modifikator, um das Datum zu formatieren.

Boolesche Typkonvertierung

In der Datenbank können einige Felder als Ganzzahlen (0 oder 1) definiert werden, um boolesche Werte darzustellen. In der Geschäftslogik möchten wir jedoch die Booleschen Werte direkt verwenden. Die automatische Konvertierung kann erreicht werden, indem der Gusstyp des Feldes auf booleschen festgelegt wird.

 
$casts = [
    'enabled' => 'boolean',
];

Der obige Code konvertiert den Datentyp des aktivierten Felds in einen booleschen Typ und umwandelt automatisch den Ganzzahlwert (0 oder 1) in einen booleschen Wert (True oder False).

Andere Felderkonvertierung

Zusätzlich zur Formatierung des Datumsbereichs und des Booleschen Typen können wir auch andere Felderarten durch Zubehör und Modifikatoren konvertieren. Konvertieren Sie beispielsweise ein numerisches Typfeld in ein Betragsformat oder konvertieren Sie es in ein prozentuales Format.

 
public function getAmountAttribute($value)
{
    return number_format($value, 2);
}

public function setAmountAttribute($value)
{
    $this->attributes['amount'] = str_replace(',', '', $value);
}

Im obigen Code verwenden wir den Accessor, um das Feld des Betrags in ein Betragsformat zu formatieren (um zwei Dezimalstellen zu bewahren) und den Wert des Betragsformats durch den Modifikator in ein Normalzahlformat umwandeln.

Zusammenfassen

Die Feldformatierung ist ein wichtiges Merkmal in Laravel, das es uns ermöglicht, die Modellfelder entsprechend den Projektanforderungen flexibel zu verarbeiten und zu präsentieren. Über die in diesem Artikel beschriebene Konvertierungsmethode für Feldtypen können wir die Datumsformatierung, die Konvertierung des Booleschen Typs und andere benutzerdefinierte Feldformatierungsaufgaben problemlos verarbeiten. Wenn Sie diese Techniken beherrschen, können Sie im Entwicklungsprozess effizienter und bequemer werden.