在 Twig 中使用自定义函数

2024-02-21

在我的模板中,我想输出服务器时区。

我的模板有类似的东西

{{ getservertimezone }}

然后在services.yml我拥有的那个捆绑包的配置

my.twig.extension:
    class: My\WebsiteBundle\Extensions\Twig\SomeTemplateHelper
    tags:
           - { name: twig.extension }

And my SomeTemplateHelper好像

namespace My\WebsiteBundle\Extensions\Twig;

class SomeTemplateHelper extends \Twig_Extension
{

    public function getFilters() 
    {
        return array(
            'getservertimezone'  => new \Twig_Filter_Method($this, 'getServerTimeZone'),
        );
    }

    
    public function getServerTimeZone()
    {
        if (date_default_timezone_get()) {
            return date_default_timezone_get();
        } else if (ini_get('date.timezone')) {
            return ini_get('date.timezone');
        } else {
            return false;
        }
    }

    public function getName()
    {
        return 'some_helper';
    }
    
}

但我无法调用此方法,除非它像过滤器一样使用:{{ someval | getservertimezone }};有没有办法直接做{{ getservertimezone() }} call?


Use getFunctions()代替getFilters()

public function getFunctions()
{
    return array(
        new \Twig_SimpleFunction('server_time_zone', array($this, 'getServerTimeZone')),
    );
}

Twig 过滤器用于过滤某些值。

{{ "some value" | filter_name_here }}

顺便说一句,您可以在同一个类中定义过滤器和函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Twig 中使用自定义函数 的相关文章

随机推荐

  • 未捕获的异常:jQuery 升级后出现语法错误

    我正在尝试将现有应用程序从 jQuery 1 3 2 升级到 jQuery 1 4 2 当我这样做时 页面无法正确加载 并且 Firefox 的错误控制台显示错误消息 未捕获的异常 语法错误 无法识别的表达式 语法错误 无法识别的表达式 搜
  • AngularJS Angular-File-Upload 未知提供者:$uploadProvider 错误

    这不是重复的这个问题 https stackoverflow com questions 24390170 unknown provider uploadprovider upload 我已将所有必需的文件包含在视图中 我的模块和控制器 v
  • jQuery 是否总是按照 DOM 在代码中出现的顺序迭代它们?

    举例来说 我有一个可排序列表 ul li Item 1 li li Item 2 li li Item 3 li ul 我想知道的是 如果我进行如下所示的 jQuery 调用 each li function key item 我可以期望
  • 为什么相对路径不适用于 xsl:include?

    我有一个 XSL 文件 它可以转换为 PDF 在这个页面的顶部 我有一个很长的 CSS 样式 例如
  • 来自应用程序的新 NSWindow - 不可能完成的任务?

    好吧 我做错了什么 1 创建了cocoa app和appDelegate 命名为 window2AppDelegate2 窗口AppDelegate h import PrefWindowController h interface win
  • 旋转图像和像素碰撞检测

    我这里有这个游戏plunker http plnkr co edit VCdFyn3SE4wSZa0OLRRT p preview 当剑不旋转时 一切正常 您可以通过取消注释第 221 行并注释掉第 222 223 行进行检查 当它们像上面
  • 如何在android中提取这个字符串变量?

    String test 1 Low level programming language true 2 High level programming language false 3 Machine language false 4 All
  • C中的时间戳,精度为毫秒

    我对 C 编程比较陌生 我正在开发一个需要非常精确的时间的项目 因此我尝试写一些东西来创建毫秒精度的时间戳 这似乎有效 但我的问题是这种方法是否正确 或者是否有更简单的方法 这是我的代码 include
  • xdebug 扩展未加载

    我已经安装了 xdebug 显示在 phpinfo 中 但我试图让它与 PHPUnit 的代码覆盖功能一起使用 它一直告诉我 XDebug 扩展未加载 我的 phpunit 与 WAMP 工作得很好 当我运行 php m 时 我没有看到 p
  • 无法在 C# 应用程序中为我的线程使用多个处理器组

    根据MSDN 文档 https msdn microsoft com en us library jj665638 v vs 110 aspx and 斯蒂芬 图布 回答 https social msdn microsoft com Fo
  • 如何保持 Asp.Net Core 控制器返回的 json 中属性的大小写?

    我们有一些遗留的 js 代码 它们执行 ajax 调用 并期望将属性命名为 Id Name 等 默认情况下 Asp Net Core 骆驼中的 json 序列化程序会使用返回实体上的属性 但我如何告诉它使用相同的大小写和 C 代码 最好我想
  • 如何在 MATLAB 中查找集合的中心点

    我正在尝试计算medoid http en wikipedia org wiki Medoid在MATLAB中 但是 我不知道该怎么做 我的数据集由多个三维数据点组成 因此具有三个轴的系统中的点云 中心点就是点 其与簇中所有其他对象的平均差
  • C# 应用程序中的全局鼠标钩子[重复]

    这个问题在这里已经有答案了 我想创建一个应用程序 当用户单击第三方 Windows 应用程序的指定按钮时 该应用程序将启动某些操作 我已经读过这里 C 应用程序中的全局鼠标捕获 https stackoverflow com questio
  • 使用 Perforce 代替 Subversion 有什么好处?

    我的团队使用 SVN 已有几年了 我们现在可以选择切换到 Perforce 做出这样的转变会有什么好处 和陷阱 P4 keeps track of your working copy on the server This means tha
  • 为什么事件冒泡在分离的 DOM 元素中不起作用?

    我有一个父母 div 有一个孩子 div 在内存中 未附加到当前文档 我想触发一个CustomEvent关注孩子 但听父母的事件 这是我的代码 var parent document createElement div var child
  • 在 Sublime Text 中添加自定义菜单

    如何添加自定义菜单项崇高文本2 有任何想法吗 我看到有一个主 sublime 菜单文件但不知道如何编辑它 Thanks sublime menu 文件只是 JSON 您可以在您的用户目录中创建一个 Main sublime menu 它将与
  • IOS 上的 PWA 和离线存储

    我们希望开发一款 应用程序 能够为评估人员记录受损汽车的详细信息 这个想法是让少数评估员拥有公司的 iPad 然后 当汽车损坏并返回车场时 他们可以参观拍照 输入一些详细信息 然后将其上传到主系统中 有些车场可能位于没有互联网覆盖的区域 因
  • 使用抽象超类作为Spring数据存储库的参数

    我知道如何实现 spring 数据存储库 创建一个像这样的界面 public interface CountryRepository extends CrudRepository
  • .on() 和 .click() 哪个更快?

    如果我有一个带有删除记录链接的表 那么连接单击事件的最佳方法是什么 这些在幕后的评价是否相同 table on click delete function do stuff or table delete click function do
  • 在 Twig 中使用自定义函数

    在我的模板中 我想输出服务器时区 我的模板有类似的东西 getservertimezone 然后在services yml我拥有的那个捆绑包的配置 my twig extension class My WebsiteBundle Exten