Использование запроса модели в Laravel: расписание - PullRequest
0 голосов
/ 21 февраля 2019

Я хотел создать задания динамического планирования, поэтому я использовал модель в Kernel.php, как показано ниже

protected function schedule(Schedule $schedule) {
    $tasks = \App\Model\Task::where('enabled', true)->get();
}

Он работает на локальном компьютере, но при развертывании на рабочем месте выдает следующую ошибку:

>> Illuminate\Foundation\ComposerScripts::postAutoloadDump

> @php artisan package:discover

In Connection.php line 664:

could not find driver (SQL: select * from `tasks` where `enabled` = 1) `

Если я удаляю запрос модели из kernel.php и определяю статическое расписание, он работает нормально, как и ожидалось.Но мне нужно запросить базу данных в расписании, чтобы настроить ее динамически.

Я проверил производство php.ini и обнаружил, что pdo_mysql включен.

Может ли кто-нибудь подсказать мне, чего не хватает в производственной среде?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Я провел дополнительные исследования и обнаружил, что проблема возникала только при сборке с помощью докера.Я добавил pdo pdo_mysql в config.yml и необходимые переменные среды базы данных, и теперь он работает.

https://github.com/docker-library/php/issues/62#issuecomment-70306737

0 голосов
/ 21 февраля 2019

Проверьте свои .env настройки в работе, вы определили DB_CONNECTION=mysql?

Также App\Console\Kernel.php не очень хорошее место для запроса чего-либо.

попытайтесь извлечь эту логикудля собственной команды, с помощью команды php artisan make:command TaskCommand вы можете просто создать собственную команду, а затем просто запланировать ее

$schedule->command('signature_from:task_comand')->dailyAt('9:00');

Здесь очень хорошая документация здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...