从同一命令调用artisan命令

时间:2018-03-27 08:57:05

标签: php laravel artisan

在自定义Laravel命令的句柄中,您可以再次调用该命令吗?像这样,使用伪代码描述:

public function handle() {
    code..
    code..

    $this->importantValue = $this->option('value'); //value is 'hello'

    if(something) {
        //call of the same command is made, but with different arguments or options
        //command does stuff and ends successfully
        $this->call('myself' [
            'value' => 'ahoy'
        ];
        //I expect the handle to be returned to the original command
    }

    var_dump($this->importantValue); //this equals 'ahoy'

}

这是为什么?这个新命令的命令与它被调用的原始命令有什么共同之处?

编辑:新调用的命令不会再次达到something 它不会自动调用的条件。原始命令似乎从它离开的地方开始(在称自己为第一次也是唯一一次之前),但它似乎已经继承了“儿童”变量。

1 个答案:

答案 0 :(得分:0)

是的,您可以Programmatically Executing Commands使用Artisan::call

Artisan::call('myself', [
    'value' => 'ahoy'
]);