首頁 > 後端開發 > php教程 > 可修剪的雄辯模型

可修剪的雄辯模型

Linda Hamilton
發布: 2024-12-29 18:33:11
原創
139 人瀏覽過

Prunable Eloquent Models

自 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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板