如何在symfony控制器中创建全局变量,比如在laravel中(例如: view()->share('now',date(‘Y’) ),它可以在所有模板中使用?
发布于 2017-10-06 00:43:17
设置全局模板变量
It is possible使用addGlobal类中的addGlobal函数设置每个模板中可用的全局变量。
$this->get('twig')->addGlobal('today', date('Y-m-d'));Twig date函数
请记住,Twig的核心仅仅是对php的模板化;它是一种皮肤,一种错觉。它取代了php中常用的旧式<?php echo date('Y-m-d'); ?>。这意味着两件事:
因此,为了用今天的日期设置全局变量,可以暗示添加以下行:
{% set today = date() %}如果希望每个模板都可用today,只需将其设置在base.twig.html模板中即可。或者,您也可以只在需要时使用该函数。
发布于 2017-10-05 21:27:28
将其设置为类属性。例如
class DefaultController extends Controller
{
private $now = new \DateTime();
public function page1Action()
{
$this->render('...', ['now'=>$this->now]);
}
public function page2Action()
{
$this->render('...', ['now'=>$this->now]);
}
}发布于 2020-07-15 08:19:01
一种可能是在这样的会话中创建变量。
$session = $this->get('session');
$session->set('var', $my_variable);在另一个控制器里,你只需要像这样
$session->get('var');在树枝上你可以得到你的变量
{% app.session.get('var') %}它可以解决您的问题,它是雪崩的一个用户,而不是全球。
https://stackoverflow.com/questions/46594856
复制相似问题