twig 相关问题

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

在 Twig (Timber) 中调用 Helper 函数

我尝试在 Twig (Timber) 中调用静态辅助方法。 {{ function('主题\Helpers::get_template_name') }} 警告:call_user_func_array() 期望参数 1 是有效的 回调,类 '

回答 3 投票 0

树枝中的背景媒体图像

我们正在使用媒体库(Drupal8)并希望使用图像作为背景及其相关图像样式 style="background-image: url('{{ file_url(content.field_header_image[0]['#markup'] ) }}'); ...

回答 2 投票 0

导航,突出显示当前页面

我有一个父布局并源自该子站点。 父布局有一个导航,每个导航点代表一个子站点。 我如何在父布局中突出显示当前...

回答 8 投票 0

如何在React和symfony项目中管理路由?{% 块标题 %}</desc> <question vote="0"> <p>我使用 React 对 symfony 中的页面进行 vite 操作:</p> <p>这是基础:</p> <pre><code><!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{% block title %}Welcome!{% endblock %}</title> {# Run `composer require symfony/webpack-encore-bundle` and uncomment the following Encore helpers to start using Symfony UX #} <link rel="shortcut icon" type="image/x-icon" href="{{ asset('images/Logo 2.png') }}"> <meta name="viewport" content="width=device-width, initial-scale=1"> {% block stylesheets %} {{ vite_entry_link_tags('app') }} {% endblock %} <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap" rel="stylesheet"> </head> <body> {% block body %}{% endblock %} {% block javascripts %} {{ vite_entry_script_tags('app') }} {% endblock %} </body> </html> </code></pre> <p>这是树枝:</p> <pre><code>{% extends 'base.html.twig' %} {% block title %}Reseau Sociaux{% endblock %} {% block body %} <div id="app"></div> {% endblock %} </code></pre> <p>这是控制器:</p> <pre><code>/** * @Route("/reseau-sociaux", name="reseau-sociaux_home") * @IsGranted("ROLE_USER") */ public function reseauSociaux(Request $request) { return $this->render('reseauSociaux/reseauSociaux.html.twig'); } </code></pre> <p>这是我的反应:</p> <pre><code>import React from "react"; import { createRoot } from 'react-dom/client'; import Actualite from './pageActualite/Actualite' import './styles/app.css'; import { BrowserRouter, Routes, Route } from "react-router-dom"; import ProfilUser from "./otherPages/ProfilUser/ProfilUser"; const App = () => { return ( <BrowserRouter> <Routes> <Route path="reseau-sociaux" element={<Actualite />}/> <Route path="/reseau-sociaux/profil" element={<ProfilUser />}/> </Routes> </BrowserRouter> ); } const rootElement = document.querySelector('#app'); const root = createRoot(rootElement); root.render(<App />); </code></pre> <p>问题是<strong>route</strong>,react-router-dom运行良好,但是如果我刷新页面,错误是:找不到路由,来自symfony的错误。例如,如果我刷新 /reseau-sociaux/profile 页面,我会收到错误,因为我的 symfony 中没有路由 /reseau-sociaux/profil。</p> <p>我也有其他树枝页面,但它们效果很好</p> </question> <answer tick="false" vote="0"> <p>当然...如果你将路线从<pre><code>/reseau-sociaux</code></pre>延伸到<pre><code>/reseau-sociaux/profil</code></pre>,那就是symfony路线不匹配。你必须 symfony 告诉你的路线可以有子路径。</p> <p>您可以更改路由参数以匹配子路径,例如</p> <pre><code>/** * @Route("/reseau-sociaux/{sub}", name="reseau-sociaux_home", requirements={"sub"=".+"}) * @IsGranted("ROLE_USER") */ public function reseauSociaux(Request $request, ?string $sub = null) { return $this->render('reseauSociaux/reseauSociaux.html.twig'); } </code></pre> </answer> </body></html>

我在 symfony 中使用 React 和 vite 来处理页面: 这是基础: {% 块标题 %}</desc> <question vote="0"> <p>我使用 React 对 symfony 中的页面进行 vite 操作:</p> <p>这是基础:</p> <pre><code><!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{% block title %}Welcome!{% endblock %}</title> {# Run `composer require symfony/webpack-encore-bundle` and uncomment the following Encore helpers to start using Symfony UX #} <link rel="shortcut icon" type="image/x-icon" href="{{ asset('images/Logo 2.png') }}"> <meta name="viewport" content="width=device-width, initial-scale=1"> {% block stylesheets %} {{ vite_entry_link_tags('app') }} {% endblock %} <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap" rel="stylesheet"> </head> <body> {% block body %}{% endblock %} {% block javascripts %} {{ vite_entry_script_tags('app') }} {% endblock %} </body> </html> </code></pre> <p>这是树枝:</p> <pre><code>{% extends 'base.html.twig' %} {% block title %}Reseau Sociaux{% endblock %} {% block body %} <div id="app"></div> {% endblock %} </code></pre> <p>这是控制器:</p> <pre><code>/** * @Route("/reseau-sociaux", name="reseau-sociaux_home") * @IsGranted("ROLE_USER") */ public function reseauSociaux(Request $request) { return $this->render('reseauSociaux/reseauSociaux.html.twig'); } </code></pre> <p>这是我的反应:</p> <pre><code>import React from "react"; import { createRoot } from 'react-dom/client'; import Actualite from './pageActualite/Actualite' import './styles/app.css'; import { BrowserRouter, Routes, Route } from "react-router-dom"; import ProfilUser from "./otherPages/ProfilUser/ProfilUser"; const App = () => { return ( <BrowserRouter> <Routes> <Route path="reseau-sociaux" element={<Actualite />}/> <Route path="/reseau-sociaux/profil" element={<ProfilUser />}/> </Routes> </BrowserRouter> ); } const rootElement = document.querySelector('#app'); const root = createRoot(rootElement); root.render(<App />); </code></pre> <p>问题是<strong>route</strong>,react-router-dom运行良好,但是如果我刷新页面,错误是:找不到路由,来自symfony的错误。例如,如果我刷新 /reseau-sociaux/profile 页面,我会收到错误,因为我的 symfony 中没有路由 /reseau-sociaux/profil。</p> <p>我也有其他树枝页面,但它们效果很好</p> </question> <answer tick="false" vote="0"> <p>当然...如果你将路线从<pre><code>/reseau-sociaux</code></pre>延伸到<pre><code>/reseau-sociaux/profil</code></pre>,那就是symfony路线不匹配。你必须 symfony 告诉你的路线可以有子路径。</p> <p>您可以更改路由参数以匹配子路径,例如</p> <pre><code>/** * @Route("/reseau-sociaux/{sub}", name="reseau-sociaux_home", requirements={"sub"=".+"}) * @IsGranted("ROLE_USER") */ public function reseauSociaux(Request $request, ?string $sub = null) { return $this->render('reseauSociaux/reseauSociaux.html.twig'); } </code></pre> </answer> </body></html>

回答 0 投票 0

我可以将刀片模板引擎(laravel)与 symfony 一起使用吗?

我昨晚正在从 symfony 的官方文档中学习 symfony,一切都工作正常,除非我觉得需要掌握 twig。 过去 6 - 8 个月我一直在 Laravel 工作......

回答 2 投票 0

Twig 访问对象

我想访问树枝模板内对象的值。 通常我会得到这样的回报: echo $lang->get("测试"); 但是我怎样才能在模板中用树枝做同样的事情呢? 我尝试...

回答 2 投票 0

Drupal 8 - 如何访问嵌套在数组结构深处的字段值

我正在尝试访问嵌套在数组深处的内容类型的值。这是实际场景: 我想使用附加字段信息自定义 Drupal 8 的默认搜索结果页面布局...

回答 1 投票 0

如何在Twig文件中转换Word中的数字

我想将 Price:200$ 转换为 Price:Two Hundred$ 之类的单词。 在像这样的小树枝中 {{price}} 但这是显示号码。 任何人都可以知道如何在 Twig 中以文字形式显示这个价格吗?

回答 3 投票 0

像素集成到 Opencart 3

有人可以在 OpenCart 3 帮我解决这个问题吗? 我需要将以下 iFrames 像素代码添加到确认/感谢页面中以进行订单跟踪。 <p>有人可以在 OpenCart 3 帮助我解决这个问题吗?</p> <p>我需要将以下 iFrames 像素代码添加到确认/感谢页面中以进行订单跟踪。</p> <pre><code>&lt;!-- Offer Conversion: --&gt; &lt;iframe src=&#34;https://marktamerica.go2cloud.org/aff_l?offer_id=13763&amp;adv_sub=&lt;ORDER_ID&gt;&amp;amount=&lt;SALE_AMT&gt;&#34; width=&#34;1&#34; height=&#34;1&#34; /&gt;&lt;/iframe&gt; &lt;!-- // End Offer Conversion --&gt; </code></pre> <p>您应该按如下方式替换像素代码中的以下标签:</p> <p><ORDER_ID> = 将此值替换为您的参数,该参数将作为订单确认号。</p> <p><SALE_AMT> = 将此值替换为包含不含税和运费的交易小计金额的参数。</p> <hr/> <p>但是有人给了我如下代码</p> <p>在catalog/controller/checkout/success.php中</p> <p>取消设置会话之前</p> <pre><code>$order_id=$this-&gt;session-&gt;data[&#39;order_id&#39;]; $this-&gt;load-&gt;model(&#39;checkout/order&#39;); $order_info = $this-&gt;model_checkout_order-&gt;getOrder($order_id); $data[&#39;total&#39;] = $order_info[&#39;total&#39;]; $data[&#39;order_id&#39;] = $order_id; </code></pre> <p>然后使用</p> <p>{{order_id}} 而不是 <ORDER_ID></p> <p>{{总计}}而不是<SALE_AMT></p> <hr/> <p>我已经尝试过的代码可以工作,但是我需要的 {{total}} <SALE_AMT> = 将此值替换为包含交易小计金额的参数,<strong>不包括税费和运费</strong>。</p> </question> <answer tick="false" vote="0"> <p>看来您想使用<pre><code>sub_total</code></pre>。这里你必须使用<strong>catalog/model/checkout/success.php</strong>中的另一种方法,即<pre><code>getOrderTotals</code></pre>而不是<pre><code>getOrder</code></pre>。</p> <p>在<strong>catalog/controller/checkout/success.php</strong></p> <p>使用以下代码</p> <pre><code>$order_id = $this-&gt;session-&gt;data[&#39;order_id&#39;]; $this-&gt;load-&gt;model(&#39;checkout/order&#39;); $data[&#39;order_id&#39;] = $order_id; $totals = $this-&gt;model_checkout_order-&gt;getOrderTotals($order_id); foreach ($totals as $total) { if ($total[&#39;code&#39;] == &#39;sub_total&#39;) { $data[&#39;total&#39;] = $total[&#39;value&#39;]; break; } } </code></pre> <p>现在您将在 <pre>success.twig</pre> 文件中的 <strong><code>{{total}}</code></strong> 中获得小计。</p> </answer> <answer tick="false" vote="-2"> <p>代码不起作用</p> <p>感谢页面上没有显示任何信息。</p> <p>有什么帮助吗?</p> <p>谢谢</p> </answer> </body></html>

回答 0 投票 0

Symfony 和 Jquery:$ 未定义

使用 Symfony,我为我的集合创建了一个表单和表单模板: {% 块_training_versions_entry_dates_widget %} ... var 日期计数 = {{...</desc> <question vote="0"> <p>使用 Symfony,我为我的收藏创建表单和表单模板:</p> <pre><code>{% block _training_versions_entry_dates_widget %} ... &lt;script type=&#34;text/javascript&#34;&gt; var datesCount = {{ form|length }}; $(function () { $(&#39;#add-another-email&#39;).click(function(e) { ... }); }); &lt;/script&gt; {% endblock %} </code></pre> <p>但是我有这个错误:<strong>未捕获的引用错误:$未定义</strong></p> <p>我在我的<pre><code>base.html.twig</code></pre>中加载Jquery:</p> <pre><code>&lt;body&gt; {% block body %}{% endblock %} &lt;script src=&#34;https://code.jquery.com/jquery-3.2.1.min.js&#34; integrity=&#34;sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=&#34; crossorigin=&#34;anonymous&#34;&gt;&lt;/script&gt; &lt;script src=&#34;{{ asset(&#39;/js/app.js&#39;) }}&#34;&gt;&lt;/script&gt; {% block javascripts %}{% endblock %} &lt;/body&gt; </code></pre> <p>我想是因为我的主题是在Jquery之前调用的,但我不想在我的<pre><code>&lt;head&gt;</code></pre>中移动jquery。你能帮我吗?</p> </question> <answer tick="true" vote="2"> <p>你的js代码必须在jquery加载后调用。因此,您可以在布局中执行类似的操作,在 <pre><code>&lt;/body&gt;</code></pre> 标签之前添加一个 js 代码块:</p> <p><strong>layout.html.twig</strong>:</p> <pre><code>{% block javascripts_footer %} &lt;script src=&#34;{{ asset(&#39;vendor/jquery/jquery.min.js&#39;) }}&#34;&gt; {% endblock %} &lt;/body&gt; &lt;/html&gt; </code></pre> <p>然后,在模板中,将 js 写入 <pre><code>javascripts_footer</code></pre> 块中,而不是<pre><code>content</code></pre> 块中:</p> <pre><code>{% block javascripts_footer %} {{ parent() }} &lt;script&gt; $(document).ready(){ var datesCount = {{ form|length }}; $(function () { $(&#39;#add-another-email&#39;).click(function(e) { ... }); }); }); &lt;/script&gt; {% endblock %} </code></pre> </answer> <answer tick="false" vote="0"> <p>您需要将函数包装在 <pre><code>$(document).ready()</code></pre> 或 <pre><code>$(window).load()</code></pre> 中 试试这个:</p> <pre><code>$(document).ready(){ var datesCount = {{ form|length }}; $(function () { $(&#39;#add-another-email&#39;).click(function(e) { ... }); }); }); </code></pre> </answer> <answer tick="false" vote="0"> <p>您的内联 JavaScript 在 jQuery 加载之前执行,假设块 <pre><code>_training_versions_entry_dates_widget</code></pre> 是块 <pre><code>body</code></pre> 的子块。 要么将内联 JavaScript 移到 jQuery 源下方,要么像您已经描述的那样将其放在头部,以其他方式移动。</p> <p>您可能希望将 <pre><code>{{ form|length }}</code></pre> 设置为数据属性,并稍后通过 JavaScript 获取它。这样你就不需要内联 JavaScript。</p> <pre><code>$(function () { var datesCount = $(&#39;#add-another-email&#39;).attr(&#39;data-form-length&#39;); $(&#39;#add-another-email&#39;).click(function(e) { ... }); }); </code></pre> </answer> <answer tick="false" vote="0"> <p>你也可以将其包装成纯 JavaScript 语句:</p> <pre><code>document.addEventListener(&#34;DOMContentLoaded&#34;, function(event) { var datesCount = {{ form|length }}; $(function () { $(&#39;#add-another-email&#39;).click(function(e) { ... }); }); } </code></pre> </answer> </body></html>

回答 0 投票 0

如何获取twig视图中实体对象的类名

举个例子,如果我们将一个表对象传递给twig视图,我们如何获取该对象的类名,例如“Table”。 类表{ } $表=新表(); 在树枝中: {{ table.className }} ---> t...

回答 4 投票 0

在 Twig 模板中,如何根据项目的属性值对数组中的项目进行分组?

在 PHP 中我会这样做: $menu_groups = array(); foreach($items 作为 $item){ $menu_id = $item['properties.menu_id']; if(!array_key_exists($menu_id, $menu_groups)) $menu_groups[$menu_id] =...

回答 1 投票 0

嵌套 if else 于 Twig 中

有没有办法在twig中实现嵌套的if else功能?我已尝试以下方法,但它不起作用: 有没有办法在twig中实现嵌套的if else功能?我已尝试以下方法,但不起作用: <body {% if page|default('login') == 'login' %} class="login" {% else if( page == 'other') %} class="login" {% else %} class="noclass" {% endif %}> </body> elseif 需要是单个单词标签/关键字,并且表达式不应具有与 if 表达式相同的括号。 http://twig.sensiolabs.org/doc/tags/if.html <body {% if page|default('login') == 'login' %} class="login" {% elseif page == 'other' %} class="login" {% else %} class="noclass" {% endif %}> </body> 您也可以使用三元运算符来缩短您的语句... ...您可能不应该重复 class=".." 部分。 <body class="{{ page|default('login') in ['other','login'] ? 'login' : 'noclass' }}"> 请运行 eval $(ssh-agent) 然后再次添加您的密钥 会起作用的

回答 3 投票 0

扩展Twig,点运算符(getAttribute)的自定义处理程序可能吗?

使用Twig 3.0,我想知道是否可以创建在处理点运算符时进行干预的Twig扩展? 所以,假设我有这个表达 {{ myRecord.myField }} 而我...

回答 1 投票 0

渲染前检查模板是否存在

有没有办法在调用渲染之前检查树枝模板是否存在? try catch 块似乎不起作用,至少在开发环境中是这样,而且,我更喜欢检查而不是异常的成本......

回答 7 投票 0

使用 Grav 保存表单提交内容时不断获得空结果

我刚刚开始使用 Grav,我正在尝试创建一个表单。我遇到的问题是创建的文件不显示表单值。 这是我的表单的代码: 标题: 报告问题 形式: 呐...

回答 1 投票 0

如何使用jquery获取twig变量的属性值

我有以下问题 const $entryElements = $('[数据条目 ID]'); 常量 $entryIds = $.地图($

回答 1 投票 0

Twig 和函数的问题

我正在尝试检查权限级别,但唯一有效的函数是 auth.perm_one,当 perm_two、perm_ Three 等相同时。用户在数据库中的权限级别为 10...

回答 1 投票 0

TWIG 是否支持使用“...”标记的可变参数?

我想为包含中的函数提供可变数量的参数,但我不确定 TWIG 是否支持 PHP 三点标记。 我一定能做到 {{ callFunction('funcName', arg1,...

回答 2 投票 0

Symfony6 输入提交和从 twig 模板获取的路由

我正在 Symfony6 中工作,从只读端点获取信息。我正在重写一个现有但已严重弃用的应用程序,因此我确切地知道这些内容需要如何组合在一起才能更新 retrie...

回答 1 投票 0

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