调用期间如何覆盖服务参数

时间:2018-12-20 12:22:45

标签: php symfony

我有一个通过接受所需数据来生成CSV文件的类。我已经将该类声明为symfony服务,

<service id="admin.csv_response" class="AdminBundle\Controller\CsvResponse" public="true"> <argument key="$data">NULL</argument> <argument key="$fileName">export.csv</argument> </service>

我需要从控制器调用此服务,

$this->get('admin.csv_response');

如何通过在调用期间传递$ data和$ fileName的值作为参数来传递它们,以使其覆盖已给定的值?

我尝试了以下行,但不起作用。

$this->get('admin.csv_response', ['sample data', 'xxx.csv']);

提前谢谢!

1 个答案:

答案 0 :(得分:1)

只需在您的服务中添加2个setter方法,而不是通过构造函数注入它们即可:

setData(string $data){...};
setFileName(string $fileName){...};

然后给他们打电话:

$this->get('admin.csv_response')->setData(...)->setFileName(...);