Php laravel 4.1.28命令注册不起作用
我目前正在使用Laravel版本4.1.28,并使用php artisan command:make创建了一个命令,该命令运行良好,并在app/commands/ArchiveMailorder.php下创建了一个文件: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
<?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-->例如:让我们假设Unixrm
命令之类的内容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
}