I work with Laravel Task Scheduling, but I have a problem when I call some method from my controller.
protected function schedule(Schedule $schedule)
{
$schedule->call('UserController@deleteInactiveUsers')->everyMinute();
//$schedule->call('App\Http\Controllers\UserController@deleteInactiveUsers')->everyMinute();
}
When I call with uncommented line i get this error:
[ReflectionException]
Class RecurrenceInvoiceController does not exist
and then I insert fully qualified namespace path and then I get this error:
[PDOException] SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
And
[ErrorException] PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or service not known
Where is the problem? Which way is correct to call method from Controller from Laravel Task Scheduling.
I stumbled months ago with the same problem, until I could fix it. I use laravel 5.2 and the kernel call my drivers this way:
I hope this will help someone else ;)
Also now I test with more simple function to insert new currency in database. Here is code:
This function is from
laravel/app/Console/Commands
. I call fromKernel > schedule()
. Not work.When I insert simple log write to
handle()
function like:this works. But when I try to create new object from
Models
and save into db -> this not work.OK. I solved this problem. The problem was with Docker Cron container. Cron container was not linked with MySQL container. Thanks for all answers.
For me, the first error looks like you need to run
composer update
, thencomposer dump-autoload
.If it works you will also get the second error, the 2002 error meaning is:
You need to set your database configuration in your
.env
file