如何将句柄方法调用到 routes.php 文件中?

How to call a handle method into an routes.php file?

我想在我的命令行中 运行 php artisan make:greetings 命令时打印一条日志消息它应该 return 我的日志文件中的一条消息,关于如何调用句柄routes.php 文件中的方法,为此我正在编写一些代码,但出现以下错误请帮助我解决此问题

Error

   TypeError 

  Argument 2 passed to Illuminate\Foundation\Console\Kernel::command() must be an instance of Closure, array given, 
called in C:\apiato-project\apiato\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 261   

  at C:\apiato-project\apiato\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php:191
    187▕      * @param  string  $signature
    188▕      * @param  \Closure  $callback
    189▕      * @return \Illuminate\Foundation\Console\ClosureCommand
    190▕      */
  ➜ 191▕     public function command($signature, Closure $callback)
    192▕     {
    193▕         $command = new ClosureCommand($signature, $callback);
    194▕
    195▕         Artisan::starting(function ($artisan) use ($command) {

  1   C:\apiato-project\apiato\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:261
      Illuminate\Foundation\Console\Kernel::command("make:greetings", ["App\Console\Commands\Hello"])

  2   C:\apiato-project\apiato\app\Ship\Commands\Routes.php:24
      Illuminate\Support\Facades\Facade::__callStatic("command")

routes.php

 Artisan::command('make:greetings',[Hello::class,'handle'=>true]);

Hello.php

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Log;

class Hello extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'make:greetings';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle()
    {
        
        return Log::info("welcome message");
    }
}

第二个参数必须是一个闭包,而你正在传递一个数组,这个闭包用于将数据传递给你的 handle 方法,因为你的 handle 方法中没有任何参数,请使用调用方法而不是命令,试试这个:

Artisan::call('make:greetings');

并且不要忘记在 App\Console\Kernel class:

中注册您的命令
    protected $commands = [
        'App\Console\Commands\Hello',
    ];