Я действительно борюсь с тем, как задать свой вопрос, надеюсь, это понятно. То, что я пытаюсь сделать, - это отправить дополнительную информацию в представление, когда конкретная служба используется другим образом, позволяя визуализировать представление как есть. Итак, я пойду.
В symfony, вообще говоря, когда вы хотите сделать вид, вот как вы это делаете
return $this->render(
'ExampleBundle:View.html.twig',
array(
'form' => $form->createView(),
'example' => $example
)
);
Можно ли добавлять дополнительные параметры через службу к этой функции render()
непосредственно перед визуализацией представления, например, в приведенном выше коде. Мне нужен 'example' => $example
from service.
Теперь, конечно, я всегда могу вызвать службу внутри контроллера, а данные в $example
будут присвоены параметру example
, отправляемому в представление
$example = $this->get('calculations')->TotalTax();//call to a custom service i created
Но то, что я прошу, заключается в том, что если в службе я могу контролировать/перезаписывать представление или параметры, отправляемые в представление.
Поэтому, если услуга используется minupalate, параметры отправляются в представление или изменяют представление вместе, другие мудрые позволяют визуализировать представление как есть.
Если вы хотите, чтобы служба выбирала представление для рендеринга и данные для него, вы можете сделать возврат службы, например
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(),)
)
);
но я думаю, что это нехорошее решение.