Laravel Scheduling呼叫控制器

Kik*_*lce 12 php cron laravel laravel-5 taskscheduler

我使用Laravel任务调度,但是当我从控制器调用某个方法时遇到问题.

protected function schedule(Schedule $schedule)
{
    $schedule->call('UserController@deleteInactiveUsers')->everyMinute();
    //$schedule->call('App\Http\Controllers\UserController@deleteInactiveUsers')->everyMinute();
}
Run Code Online (Sandbox Code Playgroud)

当我使用未注释的行调用时,我收到此错误:

[ReflectionException]
Class RecurrenceInvoiceController does not exist
Run Code Online (Sandbox Code Playgroud)

然后我插入完全限定的命名空间路径,然后我收到此错误:

[PDOException] SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
Run Code Online (Sandbox Code Playgroud)

[ErrorException] PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known 
Run Code Online (Sandbox Code Playgroud)

问题出在哪儿?从Laravel任务调度中调用Controller的方法是正确的.

Jen*_*ses 21

我几个月前偶然发现同样的问题,直到我能解决它.我使用laravel 5.2,内核以这种方式调用我的驱动程序:

$schedule->call('App\Http\Controllers\MyController@MyAction')->everyMinute();
Run Code Online (Sandbox Code Playgroud)

我希望这能帮助别人;)


lcj*_*ury 1

对我来说,第一个错误看起来像你需要运行composer update,然后composer dump-autoload

如果它有效,您还会收到第二个错误,2002 错误含义是:

无法通过套接字连接到本地 MySQL 服务器”(请参阅​​(MySQL 文档中的客户端错误代码和消息)。

您需要在.env文件中设置数据库配置