Laravel Too many arguments, expected arguments "command" while scheduling

32,278

Solution 1

I found a solution,

/opt/php70/bin/php /home/sitename/public_html/artisan schedule:run >/dev/null 2>&1

initially i had 1 after schedule:run method . As below

/opt/php70/bin/php /home/sitename/public_html/artisan schedule:run 1 >/dev/null 2>&1

Solution 2

Your code all looks good. Have you tried simply as below

php artisan schedule:run

after reaching at your root folder path.

Share:
32,278
robertrutenge
Author by

robertrutenge

Updated on July 09, 2022

Comments

  • robertrutenge
    robertrutenge over 1 year

    This should be straigh forward buti don't know why it is not working . I am creating a command in laravel to send birtday email reminders on a user's birtday .

    Everything works fine and the schedule function is triggered but comes with an error

     [Symfony\Component\Console\Exception\RuntimeException]
      Too many arguments, expected arguments "command".
    

    This is my command

    <?php
    
    namespace App\Console\Commands;
    
    use Illuminate\Console\Command;
    use App\User;
    class SendBirthdayReminderEmail extends Command
    {
        /**
         * The name and signature of the console command.
         *
         * @var string
         */
        protected $signature = 'email:birthday';
    
        /**
         * The console command description.
         *
         * @var string
         */
        protected $description = 'Email users a birthday Reminder message';
    
        /**
         * Create a new command instance.
         *
         * @return void
         */
        public function __construct()
        {
            parent::__construct();
        }
    
        /**
         * Execute the console command.
         *
         * @return mixed
         */
        public function handle()
        {
    
         $users = User::whereMonth('dob', '=', date('m'))->whereDay('dob', '=', date('d'))->get();   
        foreach($users as $user) {   
            Mail::queue('emails.birthday', ['user' => $user], function ($mail) use ($user) {
                $mail->to($user['email'])
                    ->from('[email protected]', 'Company')
                    ->subject('Happy Birthday!');
            });
    
         }
    
        $this->info('Birthday messages sent successfully!');
    
        }
    }
    

    And this is my kernel.php file

    <?php
    
    namespace App\Console;
    
    use Illuminate\Console\Scheduling\Schedule;
    use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
    
    class Kernel extends ConsoleKernel
    {
        /**
         * The Artisan commands provided by your application.
         *
         * @var array
         */
        protected $commands = [
         Commands\SendBirthdayReminderEmail::class
        ];
    
        /**
         * Define the application's command schedule.
         *
         * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
         * @return void
         */
        protected function schedule(Schedule $schedule)
        {
    
    
            $schedule->command('email:birthday')->dailyAt('13:00')->timezone('Africa/Dar_es_Salaam');
        }
    
        /**
         * Register the Closure based commands for the application.
         *
         * @return void
         */
        protected function commands()
        {
            require base_path('routes/console.php');
        }
    }
    

    Any help will be appreciated . Thanks :-)