在 laravel 中使用任务计划每天更新查询
updating query every day using task scheduling in laravel
我正在尝试使用 laravel 任务计划程序每天更新一个查询。我目前有一个家庭控制器,我在其中 select 点赞最多的图片并将结果传递到我的主页。我还开始了一项 windows 任务,它每分钟调用我的 laravel 时间表。
家庭控制器:
$foodOfTheDay = Picture::withCount('likes')
->where('picture_type', 'food')
->orderBy('likes_count', 'desc')
->with('user')
->first();
$drinkOfTheDay = Picture::withCount('likes')
->where('picture_type', 'drink')
->orderBy('likes_count', 'desc')
->with('user')
->first();
return view('timeline.index', [
'users' => $users,
'pictures' => $pictures,
'comments' => $comments,
'foodOfTheDay' => $foodOfTheDay,
'drinkOfTheDay' => $drinkOfTheDay,
]);
日程安排:
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')->hourly();
$schedule->call('\App\Http\Controllers\HomeController@petsOfDay')->daily();
}
我想知道如何从我的日程安排中更新当天的食物和饮料变量,同时让我的主视图可以访问它们。
感谢您的帮助。
首先,您需要使用 php artisan make:command YourCommandName
创建一个命令。这会在 app/Console/Commands/
.
中创建一个文件
在新创建的命令文件中,将 $signature
更改为有用的内容。另外,在 handle()
方法中,在那里写下你的逻辑。
接下来,您必须在 app/Console/Kernel.php
中的 $commands
数组中注册命令。
最后,在 app/Console/Kernel.php
的 schedule()
方法中,使用频率调用您的命令,例如 $schedule->call('command:signature')->daily();
PS:假设您已经在服务器上设置了一个每分钟运行一次的 corn 作业。
要解决此问题,请创建一个新数据库 table 来存储当天的图片。然后,创建一个 artisan 命令来上传食物和饮料变量。在时间表中,每天更新 artisan 命令。最后,在控制器中编写一个查询,从当天的图片中为每个类别选择最近的结果 table,并将该查询的结果传递给视图。
我正在尝试使用 laravel 任务计划程序每天更新一个查询。我目前有一个家庭控制器,我在其中 select 点赞最多的图片并将结果传递到我的主页。我还开始了一项 windows 任务,它每分钟调用我的 laravel 时间表。
家庭控制器:
$foodOfTheDay = Picture::withCount('likes')
->where('picture_type', 'food')
->orderBy('likes_count', 'desc')
->with('user')
->first();
$drinkOfTheDay = Picture::withCount('likes')
->where('picture_type', 'drink')
->orderBy('likes_count', 'desc')
->with('user')
->first();
return view('timeline.index', [
'users' => $users,
'pictures' => $pictures,
'comments' => $comments,
'foodOfTheDay' => $foodOfTheDay,
'drinkOfTheDay' => $drinkOfTheDay,
]);
日程安排:
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')->hourly();
$schedule->call('\App\Http\Controllers\HomeController@petsOfDay')->daily();
}
我想知道如何从我的日程安排中更新当天的食物和饮料变量,同时让我的主视图可以访问它们。
感谢您的帮助。
首先,您需要使用 php artisan make:command YourCommandName
创建一个命令。这会在 app/Console/Commands/
.
在新创建的命令文件中,将 $signature
更改为有用的内容。另外,在 handle()
方法中,在那里写下你的逻辑。
接下来,您必须在 app/Console/Kernel.php
中的 $commands
数组中注册命令。
最后,在 app/Console/Kernel.php
的 schedule()
方法中,使用频率调用您的命令,例如 $schedule->call('command:signature')->daily();
PS:假设您已经在服务器上设置了一个每分钟运行一次的 corn 作业。
要解决此问题,请创建一个新数据库 table 来存储当天的图片。然后,创建一个 artisan 命令来上传食物和饮料变量。在时间表中,每天更新 artisan 命令。最后,在控制器中编写一个查询,从当天的图片中为每个类别选择最近的结果 table,并将该查询的结果传递给视图。