Laravel 5: 从命令获取属性

Laravel 5: Get attribute from Command

我正在使用 Commands 和 Scheduler,但有些东西我无法获取,是命令的 argument/option。

控制器

public function findUsers($id)
{
    Artisan::queue('users:find', ['id' => $id]);
}

Kernel.php

protected $commands = [
    'App\Console\Commands\Inspire',
    'App\Console\Commands\FindUsers',
];

protected function schedule(Schedule $schedule)
{
    $schedule->command('inspire')
             ->hourly();

    $schedule->command('users:find')->cron('* * * * *');
}

命令

    <?php namespace App\Console\Commands;

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

class FindUsers extends Command {

    /**
     * The console command name.
     *
     * @var string
     */
    protected $name = 'users:find';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Find users every minute';

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

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function fire()
    {
        var_dump($this->argument('id'));
    }

    /**
     * Get the console command arguments.
     *
     * @return array
     */
    protected function getArguments()
    {
        return [
            ['example', InputArgument::REQUIRED, 'An example argument.'],
        ];
    }

    /**
     * Get the console command options.
     *
     * @return array
     */
    protected function getOptions()
    {
        return [
            ['example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null],
        ];
    }
}

我收到的错误是:

The "id" argument does not exist.

你知道如何获得它吗?

我找到了解决方案,

所有的结构都很好,只需要在这个函数内的数组中设置属性的名称:

/**
 * Get the console command arguments.
 *
 * @return array
 */
protected function getArguments()
{
    return [
        ['id', InputArgument::REQUIRED, 'An example argument.'],
    ];
}

如您所见,我将 'example' 替换为 'id',所以现在我可以捕获 id 属性。