亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何安排時基查詢?在拉拉維爾

如何安排時基查詢?在拉拉維爾

PHP
小怪獸愛吃肉 2023-09-15 17:44:31
我正在使用此查詢來更新狀態值public function updateStatus(Request $request){    $customer = Customer::findOrFail($request->user_id);    $customer->status = $request->status;    $customer->new_customer_status = 1;    $customer->save();    return response()->json(['message' => 'User status updated successfully.']);}我希望如果status == 1一周后$customer->new_customer_status應該自動變成NULL如何安排基于時間或天數的查詢在一周后或給定時間自動運行?
查看完整描述

2 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

  1. 發出命令php artisan make:command UpdateUserNotNew

  2. 在該類 app/Console/Commands/UpdateUserNotNew.php 中設置命令名稱:

    protected $signature = 'cron:update-user-not-new';

    根據處理方法:

public function handle()

{

    Customer::whereDate('created_at', '>', now()->addDays(7)->toDateTimeString())

        ->update([

            'new_customer_status' => null

        ]);

}

在 app/Console/Kernel.php 中的schedule()方法下添加以下行:

protected function schedule(Schedule $schedule)

{

   $schedule->command('cron:update-user-not-new')->daily();  //<--- this line

}

為了使所有這些工作正常,您必須在服務器上啟用 crontab,該信息位于 Laravel 文檔中:https://laravel.com/docs/7.x/scheduling#introduction


查看完整回答
反對 回復 2023-09-15
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

您必須將查詢放入排隊作業中。然后,您可以安排該作業在一周后運行。

這是文檔中給出的示例,就在這里:https ://laravel.com/docs/7.x/queues#delayed-dispatching

ProcessPodcast::dispatch($podcast)->delay(now()->addMinutes(10));

ProcessPodcast工作等級在哪里。我將讓您進一步深入文檔以了解如何創建作業,但這確實非常簡單明了。當然,就您的情況而言,您可能應該這樣做now()->addWeek()而不是now()->addMinutes(10).


查看完整回答
反對 回復 2023-09-15
  • 2 回答
  • 0 關注
  • 139 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號