如何在symfony控制器

时间:2017-10-05 21:11:08

标签: symfony

如何在lamvel中创建symfony控制器中的全局变量(例如:view() - > share('now',date('Ym-d'));),它在所有模板中都可用吗?

3 个答案:

答案 0 :(得分:2)

设置全局模板变量

It is possible使用addGlobal类中的BaseController函数设置每个模板中的全局变量。

$this->get('twig')->addGlobal('today', date('Y-m-d'));

Twig date函数

请记住,Twig的核心只是一个模板化的PHP;这是一种皮肤,一种幻觉。它取代了php中常用的旧样式<?php echo date('Y-m-d'); ?>。这意味着两件事:

  1. Twig语句在服务器端执行
  2. Twig可以访问(大多数)php的本机功能
  3. 因此,为了使用今天的日期设置全局变量,您可以暗示添加以下行:

    {% 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') %}

它可以解决您的问题,并且适用于非全局用户。