自 Laravel 8.5 以來,框架中添加了一個特徵,允許您根據日期修剪模型。這個
Trait 稱為 IlluminateDatabaseEloquentPrunable,它允許您根據日期修剪模型。
當您想要根據日期刪除模型時,此特徵非常有用。例如,您可能有一個模型
儲存日誌,並且您想要刪除早於特定日期的日誌。
在本文中,我們將了解如何建立一個特徵,讓您可以根據日期修剪模型。
要使用 Prunable 特徵,您需要將其新增至模型中並定義將傳回查詢的可修剪方法
建構器實例。此查詢建構器實例將用於根據日期修剪模型。
以下是如何在模型中使用 Prunable 特徵的範例:
<?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)); } }
在這個範例中,我們有一個使用 Prunable 特徵的 Log 模型。我們定義了一個回傳
的可修剪方法
一個查詢建構器實例,它將刪除超過 30 天的日誌。
要修剪模型,您需要安排修剪在特定時間運行。您可以透過新增命令來做到這一點
到您的 paths/console.php 文件,該文件將呼叫模型上的 prune 方法。
以下是如何安排日誌模型修剪的範例:
<?php use Illuminate\Support\Facades\Schedule; Schedule::command('model:prune')->daily();
在此範例中,我們安排 model:prune 命令每天運行。該命令將呼叫 prune 方法
在日誌模型上刪除超過 30 天的日誌。
以上是可修剪的雄辯模型的詳細內容。更多資訊請關注PHP中文網其他相關文章!