laravel 4.2 artisan command:name 带参数
laravel 4.2 artisan command:name with arguments
我创建了一个名为 sendUnreadNotifications 的 artisan 命令,如果用户有未读通知,它会触发系统向用户发送电子邮件。最终这将是 运行 通过 cron 作业,用户可以每小时更新或每天更新。
出于这个原因,我想用我的命令发送一个参数,像这样,
php artisan command:name sendUnreadNotifications H --env=local
然而 运行宁此,我收到以下错误,
[RuntimeException]
Too many arguments.
我的代码,看起来像这样,
<?php
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
class sendUnreadNotifications extends Command {
/**
* The console command name.
*
* @var string
*/
protected $name = 'command:name';
/**
* 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 mixed
*/
public function fire()
{
$request = Request::create('api/notifications/send/unread', 'GET', array($this->getArguments()));
Route::dispatch($request)->getContent();
}
/**
* Get the console command arguments.
*
* @return array
*/
protected function getArguments()
{
return array(
array('frequency', InputArgument::OPTIONAL, 'How often should the email be sent', 'H'),
);
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return array(
array('example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null),
);
}
}
我不明白为什么我会收到太多参数异常?
您只设置了一个参数,frequency
protected function getArguments()
{
return array(
array('frequency', InputArgument::OPTIONAL, 'How often should the email be sent', 'H'),
);
}
所以
php artisan command:name sendUnreadNotifications H --env=local
这里的H
是论点太多了。您应该将命令的名称更改为您想要执行的操作,顺便说一句,命令名称必须是唯一的...
改变这个:
protected $name = 'command:name';
到
protected $name = 'send:unreadNotifications';
和运行你的工作
php artisan send:UnreadNotifications H
它会起作用。
我创建了一个名为 sendUnreadNotifications 的 artisan 命令,如果用户有未读通知,它会触发系统向用户发送电子邮件。最终这将是 运行 通过 cron 作业,用户可以每小时更新或每天更新。
出于这个原因,我想用我的命令发送一个参数,像这样,
php artisan command:name sendUnreadNotifications H --env=local
然而 运行宁此,我收到以下错误,
[RuntimeException]
Too many arguments.
我的代码,看起来像这样,
<?php
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
class sendUnreadNotifications extends Command {
/**
* The console command name.
*
* @var string
*/
protected $name = 'command:name';
/**
* 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 mixed
*/
public function fire()
{
$request = Request::create('api/notifications/send/unread', 'GET', array($this->getArguments()));
Route::dispatch($request)->getContent();
}
/**
* Get the console command arguments.
*
* @return array
*/
protected function getArguments()
{
return array(
array('frequency', InputArgument::OPTIONAL, 'How often should the email be sent', 'H'),
);
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return array(
array('example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null),
);
}
}
我不明白为什么我会收到太多参数异常?
您只设置了一个参数,frequency
protected function getArguments()
{
return array(
array('frequency', InputArgument::OPTIONAL, 'How often should the email be sent', 'H'),
);
}
所以
php artisan command:name sendUnreadNotifications H --env=local
这里的H
是论点太多了。您应该将命令的名称更改为您想要执行的操作,顺便说一句,命令名称必须是唯一的...
改变这个:
protected $name = 'command:name';
到
protected $name = 'send:unreadNotifications';
和运行你的工作
php artisan send:UnreadNotifications H
它会起作用。