Php laravel 4.1.28命令注册不起作用

Php laravel 4.1.28命令注册不起作用,php,laravel,Php,Laravel,我目前正在使用Laravel版本4.1.28,并使用php artisan command:make创建了一个命令,该命令运行良好,并在app/commands/ArchiveMailorder.php下创建了一个文件: <?php use Illuminate\Console\Command; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Input\InputArgumen

我目前正在使用Laravel版本4.1.28,并使用php artisan command:make创建了一个命令,该命令运行良好,并在app/commands/ArchiveMailorder.php下创建了一个文件:

<?php

use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;

class ArchiveMailorder extends Command {

    protected $name = 'archive:mailorder';

    protected $description = 'This is my first command';

    public function __construct()
    {
        parent::__construct();
    }

    public function fire()
    {
      $this->line("Hello world");
    }

    protected function getArguments()
    {
        return array(
            array(),
        );
    }

    protected function getOptions()
    {
        return array(
            array(),
        );
    }
}
我得到以下错误:

{"error":{"type":"ErrorException","message":"Missing argument 1 for Symfony\\Component\\Console\\Command\\Command::addArgument()","file":"C:\\xampp\\htdocs\\mocs\\vendor\\symfony\\console\\Symfony\\Component\\Console\\Command\\Command.php","line":362}}
我按照以下链接创建和注册命令:

但仍然无法使命令发挥作用。那么请告诉我我做错了什么?我该怎么解决这个问题呢

哦,comoser.json文件如下所示:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.1.*",
        "mews/purifier": "dev-master",
        "anahkiasen/former": "dev-master",
        "laracasts/utilities": "1.0"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable"
}

在Laravel4.1/4.2中,只需添加

Artisan::添加(newsomeCommandName())

在您的命令中,您的问题在于此功能:

  protected function getArguments()
    {
        return array(
            array(),
        );
    }
除非提供参数,否则请删除该函数。因为你要返回一个数组

除非你需要这些函数中的任何一个,否则你只需要这两个函数就可以开始了,我想还有什么其他的吗

public function __construct()
{
    parent::__construct();
}

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function fire()
{
  // Do stuff
}

你是对的。由于传递空数组,我得到了这个错误。这很容易确定。但是非常感谢您的输入。不用担心@Capri82,您可以找到更多信息,我知道这是您发布的链接,但它在“参数和选项”部分进行了解释,这当然允许您添加诸如
php artisan archive:mailorder-->例如:让我们假设Unix
rm
命令之类的内容
rm
将是
rm-rf
,在本例中,它为我们提供了递归/强制标志。然后,参数将是目录,如
rm-rf~/some/Dir/To/Remove
,希望这个解释有帮助,快乐编码。
public function __construct()
{
    parent::__construct();
}

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function fire()
{
  // Do stuff
}