在 Symfony 4.4 流程组件中将参数作为数组传递

Posted

技术标签:

【中文标题】在 Symfony 4.4 流程组件中将参数作为数组传递【英文标题】:Passing argument as array in Symfony 4.4 Process Component 【发布时间】:2021-12-02 20:01:03 【问题描述】:

这是我要执行的流程命令,参数contactIds是一个数组。

 $process = new Process([
            "php",
            "../fairgate4/bin/console",
            "contactlist:remove",
            $contactIds  // array
        ]);
 $process->start();

Symfony 对此参数抛出错误:

传递给 Symfony\Component\Process\Process::escapeArgument() 的参数 1 必须是字符串或 null 类型,给定数组

【问题讨论】:

我们只能将参数作为字符串传递,我已经内爆并传递了 【参考方案1】:
 $contactIdStr = implode(' ',contactIds); // converted array to string
 $process = new Process([
            "php",
            "../fairgate4/bin/console",
            "contactlist:remove",
            $contactIdStr
        ]);
 $process->start();

【讨论】:

我们也可以试试这个,Process::fromShellCommandline('command to execute');

以上是关于在 Symfony 4.4 流程组件中将参数作为数组传递的主要内容,如果未能解决你的问题,请参考以下文章

在 Symfony 2.8、3.0 及更高版本中将数据传递给 buildForm()

Symfony 4.4 Auth0 如何从应用程序中完全注销用户

在corda shell中将状态对象作为参数传递

在 Symfony 3 中从控制器传递参数以形成 __construct 类型

如何通过 Symfony 4 中的文件系统组件获取文件内容?

在 Symfony 中将 JSON 转换为 Doctrine 实体