在 laravel 中,如何将多维数组作为 artisan 命令的选项传递?
Posted
技术标签:
【中文标题】在 laravel 中,如何将多维数组作为 artisan 命令的选项传递?【英文标题】:In laravel, how can i pass a multidimensional array as an option for artisan command? 【发布时间】:2019-10-22 23:28:49 【问题描述】:我正在尝试在 cmd 中运行 laravel 命令“php artisan set:fields”。 如何在命令中传递数组??
namespace App\Console\Commands\Scripts;
use Illuminate\Console\Command;
use App\User;
class SetFields extends Command
protected $signature = 'set:fields user_id --data_array=*';
protected $description = '';
public function __construct()
parent::__construct();
public function handle()
$user_id = $this->argument('user_id');
$metafield_array = $this->option('data_array');
....
code_is_here
我有一个数组
$data = [
["key"=>"key1","value"=>1],
["key"=>"key2","value"=>2],
["key"=>"key3","value"=>3]
];
Artisan::call('set:fields', [
'user_id' => 1,
'--data_array' => $data
]);
它正在工作。 但是我想在cmd中运行这个命令,如何在命令中传递一个数组?
【问题讨论】:
也许json编码数组,在命令行中传递json字符串解码回数组? 它抛出一个错误'参数太多,预期参数“command”“user_id”“data_array”'。这可能是由于编码数组中有许多特殊字符而发生的。 我只是对数组进行编码,然后对其进行 base64 编码,另一方对其进行解码。这是工作????????? 【参考方案1】:根据RavindraPatel 在comment 中的自我回答
我只是对数组进行编码,然后对其进行 base64 编码,然后另一方对其进行解码。这是工作?? – Ravindra Patel
【讨论】:
以上是关于在 laravel 中,如何将多维数组作为 artisan 命令的选项传递?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel + Vue - 将多维 PHP 数组传递给 vue 组件