Laravel任务:如何传递参数以在方法中使用?

时间:2019-06-05 11:58:26

标签: php laravel console scheduled-tasks

我正在使用Laravel设置一个新Task,此任务从其他类调用一个方法,该方法需要一个参数。

我一直在阅读Laravel中的文档,说我必须在{}中的$ signature中包含该参数。

protected $signature = 'cmd:taskTest {id}';

在我的handle函数中(在命令类中)

    public function handle()
    {
        WebController::downloadFile(); // downloadFile needs param
    }

还有我的方法,它由handle调用。

public static function downloadFile($warehouseId){
//do something
}

我尝试在提示符下写这个:

php artisan cmd:taskTest 1

它返回一个错误,因为它需要ID来查找数据库中有关此ID的所有信息。

要创建命令,我运行了此命令:

php artisan make:command

1 个答案:

答案 0 :(得分:2)

您可以使用argument方法进行检索。

WebController::downloadFile($this->argument('id'));

有关更多信息:https://laravel.com/docs/5.5/artisan#command-io