Twig是一款适用于PHP的现代,快速,灵活且安全的模板引擎。为Symfony创建并由Drupal 8采用。
布局中的 Symfony 6 搜索表单 (base.html.twig)
我一直面临一个搜索表单的问题,我想将其包含在布局/模板base.html.twig中,以便它在我的网站上除主页之外的任何地方都可用。当我尝试包括...
我尝试在 Twig (Timber) 中调用静态辅助方法。 {{ function('主题\Helpers::get_template_name') }} 警告:call_user_func_array() 期望参数 1 是有效的 回调,类 '
我们正在使用媒体库(Drupal8)并希望使用图像作为背景及其相关图像样式 style="background-image: url('{{ file_url(content.field_header_image[0]['#markup'] ) }}'); ...
我在 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>
我可以将刀片模板引擎(laravel)与 symfony 一起使用吗?
我昨晚正在从 symfony 的官方文档中学习 symfony,一切都工作正常,除非我觉得需要掌握 twig。 过去 6 - 8 个月我一直在 Laravel 工作......
我想访问树枝模板内对象的值。 通常我会得到这样的回报: echo $lang->get("测试"); 但是我怎样才能在模板中用树枝做同样的事情呢? 我尝试...
我正在尝试访问嵌套在数组深处的内容类型的值。这是实际场景: 我想使用附加字段信息自定义 Drupal 8 的默认搜索结果页面布局...
我想将 Price:200$ 转换为 Price:Two Hundred$ 之类的单词。 在像这样的小树枝中 {{price}} 但这是显示号码。 任何人都可以知道如何在 Twig 中以文字形式显示这个价格吗?
有人可以在 OpenCart 3 帮我解决这个问题吗? 我需要将以下 iFrames 像素代码添加到确认/感谢页面中以进行订单跟踪。 <p>有人可以在 OpenCart 3 帮助我解决这个问题吗?</p> <p>我需要将以下 iFrames 像素代码添加到确认/感谢页面中以进行订单跟踪。</p> <pre><code><!-- Offer Conversion: --> <iframe src="https://marktamerica.go2cloud.org/aff_l?offer_id=13763&adv_sub=<ORDER_ID>&amount=<SALE_AMT>" width="1" height="1" /></iframe> <!-- // End Offer Conversion --> </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->session->data['order_id']; $this->load->model('checkout/order'); $order_info = $this->model_checkout_order->getOrder($order_id); $data['total'] = $order_info['total']; $data['order_id'] = $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->session->data['order_id']; $this->load->model('checkout/order'); $data['order_id'] = $order_id; $totals = $this->model_checkout_order->getOrderTotals($order_id); foreach ($totals as $total) { if ($total['code'] == 'sub_total') { $data['total'] = $total['value']; 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>
使用 Symfony,我为我的集合创建了一个表单和表单模板: {% 块_training_versions_entry_dates_widget %} ... var 日期计数 = {{...</desc> <question vote="0"> <p>使用 Symfony,我为我的收藏创建表单和表单模板:</p> <pre><code>{% block _training_versions_entry_dates_widget %} ... <script type="text/javascript"> var datesCount = {{ form|length }}; $(function () { $('#add-another-email').click(function(e) { ... }); }); </script> {% endblock %} </code></pre> <p>但是我有这个错误:<strong>未捕获的引用错误:$未定义</strong></p> <p>我在我的<pre><code>base.html.twig</code></pre>中加载Jquery:</p> <pre><code><body> {% block body %}{% endblock %} <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> <script src="{{ asset('/js/app.js') }}"></script> {% block javascripts %}{% endblock %} </body> </code></pre> <p>我想是因为我的主题是在Jquery之前调用的,但我不想在我的<pre><code><head></code></pre>中移动jquery。你能帮我吗?</p> </question> <answer tick="true" vote="2"> <p>你的js代码必须在jquery加载后调用。因此,您可以在布局中执行类似的操作,在 <pre><code></body></code></pre> 标签之前添加一个 js 代码块:</p> <p><strong>layout.html.twig</strong>:</p> <pre><code>{% block javascripts_footer %} <script src="{{ asset('vendor/jquery/jquery.min.js') }}"> {% endblock %} </body> </html> </code></pre> <p>然后,在模板中,将 js 写入 <pre><code>javascripts_footer</code></pre> 块中,而不是<pre><code>content</code></pre> 块中:</p> <pre><code>{% block javascripts_footer %} {{ parent() }} <script> $(document).ready(){ var datesCount = {{ form|length }}; $(function () { $('#add-another-email').click(function(e) { ... }); }); }); </script> {% 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 () { $('#add-another-email').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 = $('#add-another-email').attr('data-form-length'); $('#add-another-email').click(function(e) { ... }); }); </code></pre> </answer> <answer tick="false" vote="0"> <p>你也可以将其包装成纯 JavaScript 语句:</p> <pre><code>document.addEventListener("DOMContentLoaded", function(event) { var datesCount = {{ form|length }}; $(function () { $('#add-another-email').click(function(e) { ... }); }); } </code></pre> </answer> </body></html>
举个例子,如果我们将一个表对象传递给twig视图,我们如何获取该对象的类名,例如“Table”。 类表{ } $表=新表(); 在树枝中: {{ table.className }} ---> t...
在 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] =...
有没有办法在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) 然后再次添加您的密钥 会起作用的
扩展Twig,点运算符(getAttribute)的自定义处理程序可能吗?
使用Twig 3.0,我想知道是否可以创建在处理点运算符时进行干预的Twig扩展? 所以,假设我有这个表达 {{ myRecord.myField }} 而我...
有没有办法在调用渲染之前检查树枝模板是否存在? try catch 块似乎不起作用,至少在开发环境中是这样,而且,我更喜欢检查而不是异常的成本......
我刚刚开始使用 Grav,我正在尝试创建一个表单。我遇到的问题是创建的文件不显示表单值。 这是我的表单的代码: 标题: 报告问题 形式: 呐...
我有以下问题 const $entryElements = $('[数据条目 ID]'); 常量 $entryIds = $.地图($
我正在尝试检查权限级别,但唯一有效的函数是 auth.perm_one,当 perm_two、perm_ Three 等相同时。用户在数据库中的权限级别为 10...
我想为包含中的函数提供可变数量的参数,但我不确定 TWIG 是否支持 PHP 三点标记。 我一定能做到 {{ callFunction('funcName', arg1,...