Laravel 5:在控制台内核的 schedule() 函数中使用 Cache:: 或 DB::
Laravel 5: Using Cache:: or DB:: within the Console Kernel's schedule() function
我正在尝试 运行 在 Laravel 5 中以不同的、用户配置的时间间隔执行 Artisan 控制台命令。我已经构建了控制台命令并有一个数据库(具有 Eloquent 模型)保存 "run frequency" 配置值。
在 App\Console\Kernel.php
的 schedule()
函数中,我想从数据库中提取这个值,并 运行 根据这个值在需要时执行命令。
无论是否使用 use DB;
,使用 DB::table()...
时,我都会收到 Fatal error: Class 'DB' not found
,如果我也尝试使用 Cache::...
函数,也会发生同样的情况。
我假设无法从 App\Console\Kernel.php
文件的 schedule()
函数中访问 IoC 容器。有没有人遇到类似情况并找到了一个优雅的解决方法?
我的简化代码是:
<?php namespace App\Console;
use Cache;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel {
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$settings = Cache::get('settings');
}
和错误:
php artisan schedule:run
PHP Fatal error: Class 'Cache' not found in /home/vagrant/projects/project/dir/api/app/Console/Kernel.php on line 26
如有任何帮助,我们将不胜感激
Taylor 已在 5.0.21 (Git Commit) 中修复此问题,因此遇到相同问题的任何人都可以 运行 composer update
获取最新版本的框架,这将允许你使用
Use DB;
Use Cache;
等照常
我正在尝试 运行 在 Laravel 5 中以不同的、用户配置的时间间隔执行 Artisan 控制台命令。我已经构建了控制台命令并有一个数据库(具有 Eloquent 模型)保存 "run frequency" 配置值。
在 App\Console\Kernel.php
的 schedule()
函数中,我想从数据库中提取这个值,并 运行 根据这个值在需要时执行命令。
无论是否使用 use DB;
,使用 DB::table()...
时,我都会收到 Fatal error: Class 'DB' not found
,如果我也尝试使用 Cache::...
函数,也会发生同样的情况。
我假设无法从 App\Console\Kernel.php
文件的 schedule()
函数中访问 IoC 容器。有没有人遇到类似情况并找到了一个优雅的解决方法?
我的简化代码是:
<?php namespace App\Console;
use Cache;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel {
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$settings = Cache::get('settings');
}
和错误:
php artisan schedule:run
PHP Fatal error: Class 'Cache' not found in /home/vagrant/projects/project/dir/api/app/Console/Kernel.php on line 26
如有任何帮助,我们将不胜感激
Taylor 已在 5.0.21 (Git Commit) 中修复此问题,因此遇到相同问题的任何人都可以 运行 composer update
获取最新版本的框架,这将允许你使用
Use DB;
Use Cache;
等照常