> 백엔드 개발 > PHP 튜토리얼 > 정리 가능한 Eloquent 모델

정리 가능한 Eloquent 모델

Linda Hamilton
풀어 주다: 2024-12-29 18:33:11
원래의
144명이 탐색했습니다.

Prunable Eloquent Models

Laravel 8.5부터 날짜를 기준으로 모델을 정리할 수 있는 특성이 프레임워크에 추가되었습니다. 이
특성은 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 특성을 사용하는 로그 모델이 있습니다.
을 반환하는 정리 가능한 메서드를 정의했습니다. 30일이 지난 로그를 삭제하는 쿼리 빌더 인스턴스.

일정 정리

모델을 정리하려면 특정 시간에 정리가 실행되도록 예약해야 합니다. 명령을 추가하면 됩니다
모델의 정리 메소드를 호출할 Routes/console.php 파일에 추가하세요.

다음은 로그 모델 정리를 예약하는 방법에 대한 예입니다.

<?php

use Illuminate\Support\Facades\Schedule;

Schedule::command('model:prune')->daily();
로그인 후 복사

이 예에서는 model:prune 명령이 매일 실행되도록 예약합니다. 이 명령은 정리 메소드를 호출합니다
로그 모델에서 30일이 지난 로그를 삭제하세요.

위 내용은 정리 가능한 Eloquent 모델의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿