Недопустимый аргумент, предоставленный для foreach() в задании Laravel Schedular

Недопустимый аргумент, предоставленный для foreach() в задании Laravel Schedular

09.09.2019 09:42:12 Просмотров 26 Источник

Я работаю с Schedularв Laravel 5.8. после настройки Commandsи Command Kernalя получаю ошибку как,

Недопустимый аргумент, предоставленный для foreach () в /home/SERVER_USER_NAME/public_html/vendor/symfony/console/Input/ArgvInput.php: 261)

Вот Kernal

Вот мой protected $commands = [ Commands\OfferMonitor::class, Commands\RankingCommand::class, Commands\CreditCycle::class, ]; protected function schedule(Schedule $schedule) { $schedule->command('KG:OfferMonitor')->dailyAt('01:00'); $schedule->command('KG:UpdateRanks')->everyTenMinutes(); $schedule->command('KG:CreditCycle')->dailyAt('00:00'); } работает на рабочем сервере, Cron Job

Я думаю, что сама работа cron выдает ошибку, я использую Laravel Cron Jobbinary вместо php. Это вызвало ошибку? если да, то как обойти эту проблему?

Вот полный лог ошибки и трассировка стека с фреймворк Laravel,

php-cli

Примечание: Invalid argument supplied for foreach() {"exception":"[object] (ErrorException(code: 0): Invalid argument supplied for foreach() at /home/SERVER_USER_NAME/public_html/vendor/symfony/console/Input/ArgvInput.php:261) [stacktrace] #0 /home/SERVER_USER_NAME/public_html/vendor/symfony/console/Input/ArgvInput.php(261): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'Invalid argumen...', '/home/SERVER_USER_NAME...', 261, Array) #1 /home/SERVER_USER_NAME/public_html/vendor/symfony/console/Application.php(970): Symfony\\Component\\Console\\Input\\ArgvInput->getFirstArgument() #2 /home/SERVER_USER_NAME/public_html/vendor/laravel/framework/src/Illuminate/Console/Application.php(81): Symfony\\Component\\Console\\Application->getCommandName(Object(Symfony\\Component\\Console\\Input\\ArgvInput)) #3 /home/SERVER_USER_NAME/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(133): Illuminate\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput)) #4 /home/SERVER_USER_NAME/public_html/artisan(36): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput)) #5 {main} "} , запланированные в Commandsработает правильно, когда я использую их с Kernal.phpиз терминала,поэтому нет никаких проблем с командой.

У вопроса есть решение - Посмотреть?

Ответы - Недопустимый аргумент, предоставленный для foreach() в задании Laravel Schedular / Invalid argument supplied for foreach() in Laravel Schedular Job

Является ответом!
N69S

09.09.2019 10:33:50

Попробуйте установить команду cron следующим образом

/usr/local/bin/php register_argc_argv=1 artisan schedule:run >> /dev/null 2>&1
https://stackoverflow.com/questions/57848968/invalid-argument-supplied-for-foreach-in-laravel-schedular-job/57849604#comment102126012_57849604
Он уже добавлен как cron(согласно данным в Docs). В другом проекте та же процедура работает хорошо.
Ameer Hamza

17.01.2020 03:20:01

Попробуйте установить register_argc_argv (ini config var) как 1, используя флаг-d

php -d register_argc_argv=1 artisan schedule:run >> /dev/null 2>&1
Закрыть X