Position actuelle: Accueil> Derniers articles> Formatage de champ Laravel et méthodes de conversion de type de champ de modèle

Formatage de champ Laravel et méthodes de conversion de type de champ de modèle

gitbox 2025-07-29

Qu'est-ce que le formatage sur le terrain

Le formatage des champs fait référence à des champs de conversion ou de traitement dans des tables de base de données pour répondre aux exigences de mise en forme spécifiques. Dans le cadre Laravel, nous pouvons utiliser la méthode de conversion de type de champ du modèle pour implémenter le formatage de champ.

Méthode de conversion de type de champ

Conversion de type de champ

Laravel fournit une propriété $ CASTS puissante qui convertit les champs de modèle en types de données spécifiés. La définition de la propriété $ Casts dans le modèle peut automatiquement convertir les champs de la base de données en type de données dont nous avons besoin.

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

// Utiliser des champs convertis
echo $model->birthday;  // Sortir 2022-01-01
echo $model->enabled;   // Sortir true

Dans l'exemple de code ci-dessus, le champ d'anniversaire est converti au format de date 'ym-d' et le champ activé est converti en type booléen.

Conversion de champ personnalisée

En plus d'utiliser l'attribut $ Casts par défaut pour la conversion de type, Laravel permet également une conversion de champ plus complexe via des accessoires et des modificateurs personnalisés.

Accessoires

L'accesseur nous permet d'effectuer un traitement personnalisé lors de l'obtention de valeurs de champ. Par exemple, nous pouvons formater le champ Date dans un formulaire de chaîne spécifique.

 
public function getBirthdayAttribute($value)
{
    return date('YAnnéemlunedjour', strtotime($value));
}

// Utilisation de l'accessoire
echo $model->birthday;   // Sortir 2022Année01lune01jour

Le code ci-dessus formate le champ d'anniversaire sous la forme de «y an m mois D Day» par la méthode GetBirthdayAttribute.

Modificateur

Les modificateurs sont utilisés pour traiter les valeurs de champ avant d'enregistrer des données. Par exemple, nous pouvons convertir le format de date de chaîne au format de date standard requis par la base de données.

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

// Utiliser le modificateur
$model->birthday = '2022Année01lune01jour';
$model->save();

Le code ci-dessus modifie la valeur du champ d'anniversaire en format «ymd» via la méthode SETBirthdayAtTribute et l'enregistre dans la base de données.

Scénarios d'application pour le formatage sur le terrain

Formatage de date

Dans le développement réel, il est souvent nécessaire de formater le champ Date pour répondre au format de date qui répond aux besoins du projet. Laravel fournit un moyen pratique de convertir les formats de champs de date.

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

public function getBirthdayAttribute($value)
{
    return date('YAnnéemlunedjour', strtotime($value));
}

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

Le code ci-dessus convertit d'abord le type de données du champ d'anniversaire au format de date «YM-D», puis utilise l'accessoire et le modificateur pour formater la date.

Conversion de type booléen

Dans la base de données, certains champs peuvent être définis comme des entiers (0 ou 1) pour représenter les valeurs booléennes. Mais dans la logique métier, nous voulons utiliser directement les valeurs booléennes. La conversion automatique peut être obtenue en définissant le type de moulages du champ sur booléen.

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

Le code ci-dessus convertit le type de données du champ activé en un type booléen et convertit automatiquement la valeur entière (0 ou 1) en valeur booléenne (true ou false).

Autres champs Conversion

En plus du formatage du champ de date et des types booléens, nous pouvons également convertir d'autres types de champs par le biais d'accessoires et de modificateurs. Par exemple, convertissez un champ de type numérique en un format de montant ou convertissez-le en un format en pourcentage.

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

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

Dans le code ci-dessus, nous utilisons l'accessoire pour formater le champ de montant en format de montant (préservant deux décimales) et convertir la valeur du format de montant en un format de nombre normal via le modificateur.

Résumer

Le formatage des champs est une caractéristique importante de Laravel, qui nous permet de traiter de manière flexible et de présenter des champs de modèle en fonction des exigences du projet. Grâce à la méthode de conversion de type de champ décrit dans cet article, nous pouvons facilement gérer le formatage de la date, la conversion de type booléen et d'autres tâches de mise en forme de champ personnalisées. La maîtrise de ces techniques peut vous rendre plus efficace et pratique dans le processus de développement.