Symfony-在基本布局中呈现全局变量



让我们假设我正在创建一个简单的博客,并且我有两个控制器-BaseController和PagesController。在BaseController中,我从数据库中获取元标记。在PagesController中,我有两个函数:index((渲染index.html.twig模板,view((渲染view.html.twig。我想将BaseController中的元标签变量设置为全局变量,这样在PagesController中我就不必渲染它们,只需渲染从数据库中获取数据的内容之类的变量。

我该怎么做?对此,最好的解决方案是什么?

注意:我想在BaseController中完成,我不想把每个变量都写在trick全局变量中。

实现这一点的一种方法是这样的

<?php
class BaseController {
protected function getBaseParameters() {
/**
Do stuff
Do stuff
Do stuff
**/
return $data;
}
protected function getTwig() {
#retrieve twig instance here
return $this->twig;
}
public function render($template, $args) {
return $this->getTwig()->render($template, array_merge($this->getBaseParameters(), $args));
}
}

class PagesController extends BaseController {
public function view() {
$args = [];
/**
Do stuff
Do stuff
Do stuff
**/
return $this->render('view/my/template.html', $args);
}
}

最新更新