在Laravel中使用模型查询:时间表

时间:2019-02-21 13:56:27

标签: mysql laravel schedule

我想创建动态调度作业,因此我在Kernel.php中使用了如下模型

summarise

它在本地运行,但是在部署到生产环境时会引发以下错误:

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) ` 中删除了模型查询并定义了静态计划,它会按预期工作。但是我需要在Schedule中查询数据库以动态设置它。

我检查了生产kernel.php,发现php.ini已启用。

有人可以指导我在生产环境中缺少什么吗?

2 个答案:

答案 0 :(得分:0)

检查生产中的.env设置,是否定义了DB_CONNECTION=mysql

App\Console\Kernel.php也不是查询某些内容的好地方。

尝试提取该逻辑以拥有自己的命令,使用命令php artisan make:command TaskCommand,您可以简单地创建自己的命令,然后对其进行调度

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

有非常好的文档here

答案 1 :(得分:0)

我做了更多研究,发现此问题仅在使用docker构建时发生。我在config.yml中添加了pdo pdo_mysql和所需的数据库环境变量,现在它可以工作了。

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