我实际上正在努力解决如何提问我的问题,希望很清楚。我正在尝试做的是在使用特定服务时向视图发送其他信息,其他方面让视图按原样呈现。所以我走了。
在symfony中,一般来说,当你想渲染一个视图时,你就是这样做的
return $this->render(
'ExampleBundle:View.html.twig',
array(
'form' => $form->createView(),
'example' => $example
)
);
是否可以在实际呈现视图之前通过服务向此render()
添加其他参数,例如,我希望'example' => $example
来自服务的上述代码
当然,我总是可以在控制器内调用服务,$example
数据将被分配给发送到视图的example
参数
$example = $this->get('calculations')->TotalTax();//call to a custom service i created
但我要问的是,如果在服务中我可以控制/覆盖视图或发送到视图的参数。
因此,如果正在使用该服务,则将发送到视图的参数进行最小化,或者将所有视图一起更改为其他方式,让视图按原样呈现。
答案 0 :(得分:0)
如果您希望服务选择要渲染的视图和数据,您可以返回服务,例如
return array(
'view' => 'ExampleBundle:View.html.twig',
'data' => array(
'example' => $example,
)
);
并在控制器中:
$toRender = $this->get('calculations')->TotalTax();
return $this->render(
$toRender['view'],
array_merge(
$toRender['data'],
array('form' => $form->createView(),)
)
);
但我认为这不是一个好的解决方案。