2017-05-18 1 views
2

내 앱에 softdelete() Laravel 메소드를 사용하고 싶습니다. 게시 날짜와 시간이 30 일 후에 소프트 삭제한다고 말하고 싶습니다. 현재는 내 코드가 없습니다. 왜냐하면 나는 그것이 가능한지 아닌지 먼저 조사하기 때문이다.자동 삭제 날짜가 laravel에 있음 5.4

제 질문은 게시일로부터 30 일 후에 게시물이 삭제되어야한다고 어떻게 말 할 수 있습니까?

답변

0

이 작업 (cronjob)을 만들고 매일 실행하고 30 일 전에 작성한 게시물을 확인하도록 정의 할 수 있습니다. 자세한 내용

이 링크는 Task Scheduler를 사용하는 것입니다 무엇이 필요

https://laravel.com/docs/5.4/queues

+0

옥수수범 설명을 찾지 못했지만 실수가 아니라면 직접 cpanel에서 직접 cornjobs를 만들어야합니까? laravel이 스스로 할 수있는 방법이 있습니까? – djhru

+0

@robertnicjoo 크론 작업을 하나 만들면 laravel이 나머지 작업을 처리합니다. – Sandeesh

0

를 확인합니다.

Laravel에서 실제로 스케줄러를 트리거하는 단일 cronjob을 수동으로 추가해야합니다. 그런 다음 이전 게시물을 삭제하는 명령을 만듭니다.

이 명령은 원하는 빈도를 실행하도록 예약되고 스케줄러는 해당 예약 된 명령의 모든 실행을 처리합니다 (documentation 참조).

1

작업 또는 명령을 생성하고 거기에서 작업을 수행하십시오. 작업 스케줄러를 설정하고 원하는 제거 속도에 따라 작업 또는 명령을 하루에 한 번 또는 한 번 실행하도록 작업을 예약하십시오. 그것은 간단 경우

https://laravel.com/docs/5.4/scheduling

또한 스케줄러에서 직접 코드를 작성할 수 있습니다.

$schedule->call(function() { 
    Post::where('published_at', '<=', Carbon::now()->subDays(30))->delete(); 
})->daily(); 

모델에서 소프트 삭제를 사용하도록 설정해야합니다.

+0

이렇게하면 cornjob을 사용할 필요가 없습니다. – djhru

+0

차례 차례로 laravel task scheduler가 작동하도록 cronjob을 설정해야합니다. – Sandeesh