剪定可能な雄弁なモデル

Linda Hamilton
リリース: 2024-12-29 18:33:11
オリジナル
131 人が閲覧しました

Prunable Eloquent Models

Laravel 8.5 以降、日付に基づいてモデルをプルーニングできるようにする特性がフレームワークに追加されました。これ
この特性は IlluminateDatabaseEloquentPrunable と呼ばれ、日付に基づいてモデルをプルーニングできるようになります。

この特性は、日付に基づいて削除するモデルがある場合に便利です。たとえば、モデルがあるとします
ログを保存しており、特定の日付より古いログを削除したいとします。

この記事では、日付に基づいてモデルをプルーニングできるようにする特性を作成する方法を見ていきます。

Prunable 特性の使用

Prunable トレイトを使用するには、それをモデルに追加し、クエリを返す 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 モデルがあります。
を返す prunable メソッドを定義しました。 30 日より古いログを削除するクエリ ビルダー インスタンス。

剪定のスケジュール

モデルをプルーニングするには、特定の時間にプルーニングを実行するようにスケジュールする必要があります。これを行うには、コマンドを追加します
モデルの prune メソッドを呼び出す Routes/console.php ファイルにコピーします。

ログ モデルのプルーニングをスケジュールする方法の例を次に示します。

<?php

use Illuminate\Support\Facades\Schedule;

Schedule::command('model:prune')->daily();
ログイン後にコピー

この例では、model:prune コマンドが毎日実行されるようにスケジュールを設定しています。このコマンドは prune メソッドを呼び出します
ログ モデルに基づいて変更し、30 日を超えたログを削除します。

以上が剪定可能な雄弁なモデルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート