Maison > développement back-end > tutoriel php > Modèles éloquents élagables

Modèles éloquents élagables

Linda Hamilton
Libérer: 2024-12-29 18:33:11
original
144 Les gens l'ont consulté

Prunable Eloquent Models

Depuis Laravel 8.5, un trait a été ajouté au framework qui vous permettra d'élaguer les modèles en fonction d'une date. Ceci
Le trait s'appelle IlluminateDatabaseEloquentPrunable et il vous permettra d'élaguer les modèles en fonction d'une date.

Cette fonctionnalité est utile lorsque vous avez des modèles que vous souhaitez supprimer en fonction d'une date. Par exemple, vous pourriez avoir un modèle
qui stocke les journaux et que vous souhaitez supprimer les journaux antérieurs à une certaine date.

Dans cet article, nous allons voir comment créer un trait qui vous permettra d'élaguer des modèles en fonction d'une date.

Utiliser le trait élagable

Pour utiliser le trait Prunable, vous devez l'ajouter à votre modèle et définir une méthode prunable qui renverra une requête
instance de constructeur. Cette instance du générateur de requêtes sera utilisée pour élaguer les modèles en fonction d'une date.

Voici un exemple de la façon dont vous pouvez utiliser le trait Prunable dans un modèle :

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Prunable;

class Log extends Model
{
    use Prunable;

    public function prunable()
    {
        return $this->where('created_at', '<', now()->subDays(30));
    }
}
Copier après la connexion

Dans cet exemple, nous avons un modèle Log qui utilise le trait Prunable. Nous avons défini une méthode élagable qui renvoie
une instance de générateur de requêtes qui supprimera les journaux datant de plus de 30 jours.

Programmer la taille

Pour tailler les modèles, vous devez programmer la taille pour qu'elle s'exécute à une certaine heure. Vous pouvez le faire en ajoutant une commande
dans votre fichier routes/console.php qui appellera la méthode prune sur le modèle.

Voici un exemple de la façon dont vous pouvez planifier l'élagage du modèle Log :

<?php

use Illuminate\Support\Facades\Schedule;

Schedule::command('model:prune')->daily();
Copier après la connexion

Dans cet exemple, nous planifions l'exécution quotidienne de la commande model:prune. Cette commande appellera la méthode prune
sur le modèle Log et supprimez les journaux datant de plus de 30 jours.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal