webentwicklung-frage-antwort-db.com.de

Laravel Zu viele Argumente, erwartete Argumente "Befehl" während der Planung

Dies sollte geradeaus sein, aber ich weiß nicht, warum es nicht funktioniert. Ich erstelle einen Befehl in Laravel, um an den Geburtstag eines Benutzers E-Mail-Erinnerungen zu senden. 

Alles funktioniert gut und die Zeitplanfunktion wird ausgelöst, aber es wird ein Fehler angezeigt 

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

Das ist mein Befehl 

<?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!');

    }
}

Und das ist meine kernel.php-Datei

<?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');
    }
}

Jede Hilfe wird geschätzt. Vielen Dank :-)

6
bobin56

Ich habe eine Lösung gefunden, 

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

anfangs hatte ich 1 nach dem Zeitplan: Run-Methode. Wie nachstehend

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

Ihr Code sieht alles gut aus. Sie haben es einfach wie unten versucht 

php artisan schedule:run

nachdem Sie den Pfad Ihres Stammordners erreicht haben.

1
Mahesh Yadav