سلام دوستان من میخوام کدی بنویسم که در ساعت خاصی در جدول mysql ستون هایی که تاریخexpire تمام شده خودکار حذف کنه. پروژه با لاراول نوشته شده.
میشه لطفا راهنمایی کنید
سلام.
برای این کار میتونید یک جاب (Job) با استفاده از Laravel Task Scheduler تعریف کنید. در این جاب، شما تاریخ روز را با تاریخ هر ردیف در جدولتان مقایسه میکنید و در صورتی که تاریخexpire هر ردیف از تاریخ روز کوچکتر باشد، آن ردیف را حذف میکنید.
یک مثال ساده:
به فایل App\Console\Kernel.php و تابع schedule را پیدا کنید
یک جاب تعریف کنید تا ستونهایی که تاریخ انقضای آنها پایان یافته حذف شود.
protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
DB::table('table_name')->where('expired_date', '<=', date('Y-m-d'))->delete();
})->daily();
}
برای مثال، در کد بالا ما جاب را برای اجرا در هر روز تعیین کردیم. با استفاده از دستورات مختلفِ Task Scheduler، میتوانید زمان بندی خود را به دلخواه تنظیم کنید.
جاب را اجرا کنید تا ستونهایی که تاریخ انقضای آنها به پایان رسیده، حذف بشند.
ممنونم.🌹
شاید پاسخ شما همینجا باشد