Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii2:如何将关联数组作为命令行参数传递?_Yii2 - Fatal编程技术网

Yii2:如何将关联数组作为命令行参数传递?

Yii2:如何将关联数组作为命令行参数传递?,yii2,Yii2,说明了如何将数组用作命令行参数(通过提供逗号分隔的字符串列表),但这仅适用于一维索引字符串数组: //命令“yii-example/add-test”将调用“actionAdd(['test'])” //命令“yii-example/addtest1,test2”将调用“actionAdd(['test1','test2'])” 公共函数actionAdd(数组$name){…} 但我如何将多维关联数组作为命令行参数传递,而不依赖于基于json的解决方法呢 至少我希望能够做一些类似于$yii示

说明了如何将数组用作命令行参数(通过提供逗号分隔的字符串列表),但这仅适用于一维索引字符串数组:

//命令“yii-example/add-test”将调用“actionAdd(['test'])”
//命令“yii-example/addtest1,test2”将调用“actionAdd(['test1','test2'])”
公共函数actionAdd(数组$name){…}
但我如何将多维关联数组作为命令行参数传递,而不依赖于基于json的解决方法呢


至少我希望能够做一些类似于
$yii示例/add“foo=bar”
的事情,执行
actionAdd(['foo'=>'bar'])
。最后,我还希望能够使用嵌套值(例如,
foo.bar=5
被翻译成
['foo'=>['bar'=>5]]
)。

在\yii\console\Controller::bindActionParams中有这样的代码

$args[$i] = $args[$i] === '' ? [] : preg_split('/\s*,\s*/', $args[$i]);
因此,默认情况下,仅解析逗号分隔的值(非关联)。 您可以根据需要重写此方法

但是regexp对我来说太复杂了。 我建议使用json字符串作为输入,然后执行json_decode()