如何在lamvel中创建symfony控制器中的全局变量(例如:view() - > share('now',date('Ym-d'));),它在所有模板中都可用吗?
答案 0 :(得分:2)
It is possible使用addGlobal
类中的BaseController
函数设置每个模板中的全局变量。
$this->get('twig')->addGlobal('today', date('Y-m-d'));
date
函数请记住,Twig的核心只是一个模板化的PHP;这是一种皮肤,一种幻觉。它取代了php中常用的旧样式<?php echo date('Y-m-d'); ?>
。这意味着两件事:
因此,为了使用今天的日期设置全局变量,您可以暗示添加以下行:
{% set today = date() %}
如果您希望每个模板都可以使用today
,只需在base.twig.html
模板中进行设置即可。或者,您也可以仅在需要时使用该功能。
答案 1 :(得分:0)
将其设置为类属性。例如
for(i in a)
答案 2 :(得分:0)
一种可能性是像这样在会话中创建变量。
$session = $this->get('session');
$session->set('var', $my_variable);
在另一个控制器中,您只能像这样
$session->get('var');
在树枝上,您可以获取变量
{% app.session.get('var') %}
它可以解决您的问题,并且适用于非全局用户。