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.
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)); } }
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.
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();
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!