Функция рендеринга ожидает следующие параметры:
/**
* Renders a view.
*
* @param string $view The view name
* @param array $parameters An array of parameters to pass to the view
* @param Response $response A response instance
*
* @return Response A Response instance
*
* @final since version 3.4
*/
Так что, если вы передадите правильное имя представления: @BUNDLE_NAME:RESOURCE_NAME_FOLDER:TWIG_FILE
, тогда все будет хорошо.
ОБНОВЛЕНИЕ:
Я думаю, что понимаю, что вам нужно после того, как вы предоставили более подробную информацию.Поскольку не было приведено ни одного примера, я попытаюсь работать с реалистичным сценарием.
Представьте, что у вас есть 2 шаблона: синий и красный, они имеют различия в структуре и цвете, но содержание в основном одинаковое.Тогда в моей папке с шаблонами будет 2 директории.
/app
/Resources
/views
/blue
base_template.html.twig
/red
base_template.html.twig (they can have different names it doesn't really matter)
каждая из них будет определять base_template
, где вы будете устанавливать свой импорт и другие особенности шаблона.
Теперь на вашем контроллеревы получаете значение base_template
из БД, как уже делает ваша функция.
Затем в вашем контроллере вы можете использовать это значение и передать его в свой шаблон, который будет динамически расширять его.
public function indexAction()
{
return $this->render('AppBundle:Home:index.html.twig',["base_template"=>loadTpl()]);
}
Наконец, в вашем файле ветки вы бы расширили шаблон следующим образом:
{% extends base_template %}
{% block content %}
<div class="container">
My content
</div>
{% endblock %}
Вот ссылка на: Динамическое наследование веток