如何在 Laravel Artisan 命令中将参数传递给 handle() 函数?

问题描述 投票:0回答:1

我正在 Laravel 中创建一个自定义 Artisan 命令,我需要将 parameters 传递给 handle() 函数。但是,我不确定在运行命令时如何定义和访问这些参数。

这是我到目前为止所拥有的:

class UpdatePlacesImages extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'app:update-places-images';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Fetch places data(specially images) from Places API and save it in the goog_data field';

    /**
     * Execute the console command.
     */
    public function handle()
    {
        /* We are updating google_data field by using two separate functions 
        1: updatePlacesImages()
            Updating ""google_data"" field using ""place_id"" for all places ""Expect Lounges"" because Lounges places
            are stored in table name ""lounges"" and DB name ""newairport"" while the remaining all places are 
            saved in table name ""places"" and DB name ""airport_remote  
            
        2: updateLoungesImages()
            Updating ""google_data"" field using ""place_id""  only for lounges place
        */

        $this->updatePlacesImages();
        $this->updateLoungesImages();
    }
}

我想要什么:

1:我想传递参数placeslounges

示例:

1:php artisan 应用程序:更新地点-图像地点

2:php artisan 应用程序:更新地点-图像休息室

php laravel parameters command
1个回答
0
投票

将您的签名更改为

protected $signature = 'app:update-places-images {argument}';

这是您获取它的方式

public function handle(): void
{
    $argument = $this->argument('argument');
}

由于您希望您的地点或休息室作为参数,因此您无法提前确定您是否会收到地点或休息室,因此您需要一些功能,基于这些功能您将能够确定

argument
是否实际上是地点或休息室休息室。

© www.soinside.com 2019 - 2024. All rights reserved.