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 중국어 웹사이트의 기타 관련 기사를 참조하세요!