Php Larvel 5:在控制台内核中使用Cache::或DB::x27;s schedule()函数

Php Larvel 5:在控制台内核中使用Cache::或DB::x27;s schedule()函数,php,laravel,laravel-5,Php,Laravel,Laravel 5,我试图在Laravel5中以用户配置的不同时间间隔运行Artisan控制台命令。我已经构建了console命令,并且有一个数据库(具有雄辩的模型)保存“运行频率”配置值 在App\Console\Kernel.php的schedule()函数中,我想从数据库中提取这个值,并根据这个值在需要时运行命令 我收到一个致命错误:在使用DB::table()…时,无论是否使用use DB,都找不到类“DB”,如果我尝试使用缓存::…函数也会发生同样的情况 我假设无法从App\Console\Kernel.

我试图在Laravel5中以用户配置的不同时间间隔运行Artisan控制台命令。我已经构建了console命令,并且有一个数据库(具有雄辩的模型)保存“运行频率”配置值

App\Console\Kernel.php的
schedule()
函数中,我想从数据库中提取这个值,并根据这个值在需要时运行命令

我收到一个
致命错误:在使用
DB::table()…
时,无论是否使用
use DB,都找不到类“DB”
,如果我尝试使用
缓存::…
函数也会发生同样的情况

我假设无法从
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');
    }

任何帮助都将不胜感激

泰勒在5.0.21()中修复了此问题,因此遇到相同问题的任何人都可以运行
composer update
,以获得允许您使用的最新版本的框架

使用DB

使用缓存


etc与往常一样

您是否尝试过
使用light\Support\Facades\Cache作为缓存?是的,没有什么乐趣,出现的错误是
PHP致命错误:在null上调用成员函数get()
我也尝试过$this->app->make('cache')等,但没有乐趣这很奇怪,我想应该可以使用缓存。很抱歉打扰您,但是类似于
$cache=new-illumb\Support\Facades\cache()也不起作用?谢谢你的建议,但恐怕结果是一样的。你让我想到尝试
$cache=new\lightlight\cache\CacheManager($this->app)
与设置CacheManager一样有效,但随后我收到了
config
ReflectionException
,因此我认为app/IoC在appCache的这个阶段不在全局名称空间中,您是否尝试过使用
$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