Я пытаюсь запустить консольную команду Artisan в Laravel 5 с различными временными интервалами, настроенными пользователем. Я создал консольную команду и имел базу данных (с моделью Eloquent), содержащую значение конфигурации «run frequency».
В рамках функции schedule()
App\Console\Kernel.php
я хотел бы App\Console\Kernel.php
это значение из базы данных и запустить команду по мере необходимости на основе этого значения.
Я получаю Fatal error: Class 'DB' not found
при использовании DB::table()...
с use DB;
или без use DB;
, и то же самое происходит, если я также пытаюсь использовать функции Cache::...
Я предполагаю, что контейнер IoC недоступен из функции schedule()
из файла App\Console\Kernel.php
. Кто-нибудь имел подобное и нашел изящное обходное решение?
Мой упрощенный код:
<?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
любая помощь была бы с благодарностью оценена