twig 相关问题

Twig是一款适用于PHP的现代,快速,灵活且安全的模板引擎。为Symfony创建并由Drupal 8采用。

奇怪的 HWIOAuthBundle 和 twig 错误“没有名称为“google”的资源所有者。”

此错误是由 HWIOAuthBundle 从 /login 路由触发的: 在 HWIOAuthBundle:Connect:login 中渲染模板期间抛出异常(“没有名称为“google”的资源所有者。”)。

回答 2 投票 0

Twig 剥离标签,但在块级元素之间保留(或添加)空格

考虑以下 HTML 字符串: {% set html = 'Neo praemitto velit。Caecus metuo proprius。At nobis plaga tego。' %} 我运行 striptags() o...

回答 1 投票 0

在Twig中显示Flash消息的正确方式

我有一个注册表单,提交后,显示闪现消息并重定向到特定页面。如果没有发现错误,我的闪现成功消息工作正常。但是,错误消息不会显示,当...

回答 3 投票 0

Symfony 7:模板渲染期间抛出异常(“调用未定义的方法 Twig\Extension\CoreExtension::dateConverter()”)

在一个 symfony 项目上,这个 twig 代码会抛出一个错误: {{ user.createdAt|format_datetime('full', 'none', locale='fr_FR') }} // error : 在渲染临时对象期间抛出异常...

回答 1 投票 0

从类型twig模板中的FormType访问变量

我创建了一个像这样的自定义表单类型: PositioningFlashType 类扩展 AbstractType { 噗...

回答 1 投票 0

如何在专用包中引用自定义字段类型的twig?

我(仍然)尝试将 http://xoxco.com/clickable/jquery-tags-input 引入专用包中。到目前为止,我有一个作为文本子级的类型和一个转换逗号分隔的数据转换器

回答 1 投票 0

TWIG 显示升级 Drupal 10 升级时出错

TWIG 代码 {% if 'export' in url %} {{ '@format export'|t({'@format': '导出文件'},{'context': 'kjus'}) }} 树枝代码 {% if 'export' in url %} <a href="{{ url }}"{{ attributes.addClass('btn btn-success') }}> {{ '@format export'|t({'@format': 'Export files'},{'context': 'kjus'}) }} </a> {% else %} <a href="{{ url }}"{{ attributes.addClass('btn btn-success') }}> {{ '@format csv'|t({'@format': 'CSV'},{'context': 'klinekjus}) }} </a> {% endif %} 显示以下错误 Twig\Error\SyntaxError: Unexpected token "punctuation" of value "(" ("end of print statement" expected). in Twig\TokenStream->expect() 没有收到错误 您在第二个翻译过滤器调用中缺少结束单引号。这是更正后的代码: {% if 'export' in url %} <a href="{{ url }}"{{ attributes.addClass('btn btn-success') }}> {{ '@format export'|t({'@format': 'Export files'},{'context': 'kjus'}) }} </a> {% else %} <a href="{{ url }}"{{ attributes.addClass('btn btn-success') }}> {{ '@format csv'|t({'@format': 'CSV'},{'context': 'klinekjus'}) }} </a> {% endif %}

回答 1 投票 0

如何使 Twig 日期可翻译

我在树枝中显示一个 DateTime 对象,如下所示: {{ transaction.getDate|date("F - d - Y") }} 现在我希望月份可以翻译, 例如 2012 年 4 月 - 20 日应该...

回答 3 投票 0

如果 twig 中为 null,则设置默认值

我正在树枝视图中循环我的结果.. {% 表示项目中的项目 %} {{ item.userId.firstName }} {{ item.userId.lastName }} {% 结束 %} 我想设置默认值'User unk...

回答 3 投票 0

symfony 更新 2.6 到 3.4 后奏鸣曲/twig 错误

我正在将项目从 sf2.6(php5.6) 更新到 sf3.4(php7.1)...进展顺利,但现在我遇到了一个错误,我不知道如何解决修理它。 错误输出: PHP 消息:PHP 致命错误:未捕获

回答 1 投票 0

树枝移除断线

所以我有以下代码: {{ use('frontend/assets/AppAsset')}} {{ register_app_asset() }} {{ this.beginPage() }} 但是...

回答 2 投票 0

Symfony 表单生成非预期的占位符元素

通常,应该有两个输出都填充了分类ID - 不知何故,有一个“占位符”元素会导致错误。我真的不明白它从哪里来,任何想法......

回答 1 投票 0

在 Twig 中使用点表示法和 attribute()

是否有人尝试执行诸如 {{ attribute(item, 'subItem.title') }} 之类的操作来访问如下伪代码所示的结构: 类项目{ 私人$子项目; 公共职能...

回答 1 投票 0

Wordpress - 从 Timber Plugin 1.x 切换到基于 Composer 的 Timber 1.x 错误致命错误:未捕获的 LogicException:无法注册扩展

我目前正在尝试将 Timber 的 ouf 网站版本切换为其 Composer 版本。通过在函数中初始化 Timber,我设法加载供应商并使管理员毫无问题地返回...

回答 1 投票 0

我是否正确使用了 Twig 继承?

我发现自己对 Twig 继承的运作方式有点困惑,我想确保我正确地使用它。 目前,我正在探索两种选择:一种能够完全按照预期运行(alth...

回答 1 投票 0

我无法在 Laravel 中向数据库添加数据

公共功能项目(请求$request) { if ($request->isMethod('post')) { $validatedData = $request->validate([ '标题' => '必填', '描述...

回答 1 投票 0

将 4 位字符串中的第三个字符替换为 Twig 中的另一个字符

我的目标是从 4 位数字字符串中屏蔽一位数字。我不想要 2451,而是想要 24*1。 我尝试了 {{ my_var|replace(slice(2, 1): '*') }} 但这会引发以下错误:函数...

回答 3 投票 0

如何向 symfony 小部件根元素添加类

我能够向表单本身添加一个类,例如通过向 form_start/form_row 添加第二个参数等方式向 form_row 添加一个类,就像您在屏幕截图中看到的那样。 但我没能成功...

回答 1 投票 0

Symfony/Twig 在 if 条件下设置变量

我知道这真的很微不足道,也不那么重要,但它可以节省我的一生...... 您知道可以在 PHP 中的 if 块中声明变量 if( $row = $sql->fetch ){ //做一些事情...

回答 4 投票 0

导入的 Twig 宏不显示任何内容,即不工作

我正在尝试实现某种宏自动加载。 这个想法是定义一堆宏并在所有接下来的模板文件中使用它们。 我正在尝试这样做: 我正在尝试实现某种宏自动加载。 这个想法是定义一堆宏并在所有接下来的模板文件中使用它们。 我正在尝试这样做: <?php define('ROOT_FRONT', '/path/to/files/'); define('LAYOUT_DIR', ROOT_FRONT . 'layout/'); include(ROOT_FRONT . 'lib/Twig/Autoloader.php'); Twig_Autoloader::register(); $twig_loader = new Twig_Loader_Filesystem(array(LAYOUT_DIR, ROOT_FRONT)); $twig = new Twig_Environment($twig_loader, array( 'charset' => 'ISO-8859-15', 'debug' => !!preg_match('@\.int$@', $_SERVER['SERVER_NAME']), 'cache' => $_SERVER['DOCUMENT_ROOT'] . '/cache/twig/' )); $macro_code = ''; foreach(array_filter( array_diff( scandir(LAYOUT_DIR . 'macros/'), array('..','.') ), function($file) { return strtolower(pathinfo($file, PATHINFO_EXTENSION)) == 'twig' && is_file(LAYOUT_DIR . 'macros/' . $file); } ) as $file) { $info = pathinfo($file); $macro_code .= '{% import \'macros/' . $info['basename'] . '\' as macros_' . $info['filename'] . ' %}'; } $twig ->createTemplate($macro_code) ->render(array()); $twig->display('index.twig', array()); 如果我有一个文件,比如说,macro/clearfix.twig,它将在$macro_code中生成此模板代码: {% import 'macros/clearfix' as macros_clearfix %} macro/clearfix.twig里面的代码是这样的: {% macro clearfix(index, columns) %} {% if index is divisible by(columns) %} <div class="clearfix visible-md-block visible-lg-block"></div> {% endif %} {% if index is even %} <div class="clearfix visible-sm-block"></div> {% endif %} {% endmacro %} 然后,在index.twig里面,我有这个: {{ macros_clearfix.clearfix(index=2, columns=6) }} 但是什么也没有显示。 但是,以下代码可以工作: {% set index = 2 %} {% set columns = 6 %} {% if index is divisible by(columns) %} <div class="clearfix visible-md-block visible-lg-block"></div> {% endif %} {% if index is even %} <div class="clearfix visible-sm-block"></div> {% endif %} 我可能做错了什么? 我是否误解了什么或错误地应用了它? TL;博士: Twig 要求您将宏加载到将使用它们的文件中。 只需创建自定义函数即可完成您想要的操作。 Twig(至少 v1.30)没有实现宏继承。 这要求您加载要在每个文件上使用的每个单个宏。 做到这一点的唯一方法是使用完全用 PHP 编写的函数。 这就是我已经解决的问题: index.php: <?php define('ROOT_FRONT', '/path/to/files/'); define('LAYOUT_DIR', ROOT_FRONT . 'layout/'); include(ROOT_FRONT . 'lib/Twig/Autoloader.php'); Twig_Autoloader::register(); $twig_loader = new Twig_Loader_Filesystem(array(LAYOUT_DIR, ROOT_FRONT)); $twig = new Twig_Environment($twig_loader, array( 'charset' => 'ISO-8859-15', 'debug' => !!preg_match('@\.int$@', $_SERVER['SERVER_NAME']), 'cache' => $_SERVER['DOCUMENT_ROOT'] . '/cache/twig/' )); // ~ magic happens here ~ foreach(include(LAYOUT_DIR . 'fn.php') as $k => $fn) { $twig->addFunction(new Twig_SimpleFunction("fn_$k", $fn)); } $twig->display('index.twig', array()); fn.php: <?php return array( 'clearfix' => function($index, $columns){ $html = ''; if(!($index % $columns)) { $html .= '<div class="clearfix visible-md-block visible-lg-block"></div>'; } if(!($index & 1)) { $html .= '<div class="clearfix visible-sm-block"></div>'; } return $html; } ); index.twig: {{ fn_clearfix(index=2, columns=6) }} 这样,您的所有代码都会被整齐地索引,新函数会自动创建,并且很容易根据您的喜好进行扩展。 这可能是最糟糕的主意,但它确实有效。 宏 从 Twig 2.0 开始,文件中导入的宏在子模板中不再可用(例如通过包含调用)。您需要在使用宏的每个文件中显式导入宏。 来自 https://twig.symfony.com/doc/1.x/deprecated.html

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.