如何将数据从 cron(sheduler) 传输到在 Laravel 中生成 json 的 Controller 这是我的路线:
Route::get("/data",'DataController@Data');
这是我的函数 Controller 中的数据:
public function Data(){
return response()->json(['data'-> User::all()],200);
}
我如何制作 cron 来为用户查询 mysql,保存在变量中并传递给我的 Controller ?
更新: 我尝试使用缓存: 在我的命令中(将由 crontab 运行)
public function handle()
{
$data = User::All();
Log::info('Data: ' . $data);
Cache::put('data',$data);
Log::info('Done!');
Log::info('Data: ' . Cache::get('data'));
}
问题是,First info() printf 我得到了很好的数据,但是当我尝试从缓存中获取数据时,我没有想到,我尝试将数据存储到文件中 CACHE_DRIVER=文件(来自 .env) 我在windows上运行页面,存储文件夹有创建文件的权限
最佳答案
你想做的事情根本没有意义。调度程序通过 CLI 界面运行,与 Controller 无关。
我强烈建议您不要混合使用调度程序和 Controller ,而是为可能需要重用的方法创建帮助程序类。
如果您无论如何都想运行 Controller ,可以使用以下命令来运行它:
(new App\Http\Controllers\DataController())->Data()
免责声明:当您在正常请求生命周期之外调用 Controller 时,我不完全确定响应和请求类的行为。
关于php - 如何将数据从 cron 传递到 Controller laravel php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43826103/