首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在symfony控制器中创建全局变量

如何在symfony控制器中创建全局变量
EN

Stack Overflow用户
提问于 2017-10-05 21:11:08
回答 3查看 8.1K关注 0票数 0

如何在symfony控制器中创建全局变量,比如在laravel中(例如: view()->share('now',date(‘Y’) ),它可以在所有模板中使用?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-06 00:43:17

设置全局模板变量

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

代码语言:javascript
运行
复制
$this->get('twig')->addGlobal('today', date('Y-m-d'));

Twig date函数

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

  1. Twig语句在服务器端执行。
  2. 小枝可以访问(大多数)php的本机功能

因此,为了用今天的日期设置全局变量,可以暗示添加以下行:

代码语言:javascript
运行
复制
{% set today = date() %}

如果希望每个模板都可用today,只需将其设置在base.twig.html模板中即可。或者,您也可以只在需要时使用该函数。

票数 1
EN

Stack Overflow用户

发布于 2017-10-05 21:27:28

将其设置为类属性。例如

代码语言:javascript
运行
复制
class DefaultController extends Controller
{
    private $now = new \DateTime();

    public function page1Action()
    {
        $this->render('...', ['now'=>$this->now]);
    }

    public function page2Action()
    {
        $this->render('...', ['now'=>$this->now]);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2020-07-15 08:19:01

一种可能是在这样的会话中创建变量。

代码语言:javascript
运行
复制
$session = $this->get('session');
$session->set('var', $my_variable);

在另一个控制器里,你只需要像这样

代码语言:javascript
运行
复制
$session->get('var');

在树枝上你可以得到你的变量

代码语言:javascript
运行
复制
{% app.session.get('var') %}

它可以解决您的问题,它是雪崩的一个用户,而不是全球。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46594856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档