问题标签 [twig-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony - 使用 Symfony Twig Bridge 集成 Symfony Routing 和 Twig
我在我的代码中使用了 Twig 和 Symfony 路由,我想使用 Symfony Twig Bridge 与 Twig 集成。
我已经安装了它们,我需要做的是添加到需要 Symfony\Component\Routing\Generator\UrlGenerator 的 Twig 扩展 Symfony\Bridge\Twig\Extension\RoutingExtension。
UrlGenerator 需要 2 个参数:
- 路线集合
- 请求上下文
所以在我的 yaml 服务文件中,我有:
最后是 UrlGenerator:
不幸的是@router 不是路由集合类型。它有方法 getRouteCollection 允许获取 UrlGenerator 所需的数据,如果我手动添加扩展名,它就可以工作。从控制器。但我不想在不同文件之间拆分服务定义,而是希望将它们保留在 yaml 服务定义中。
所以问题是:如何将参数作为参数传递给 UrlGenerator,而不是原始对象 Router,而是 getRouteCollection 的结果?
html - 生成相当于树枝文件的 HTML 模板?
我想知道是否可以{filename}.html
为每个生成{filename}.html.twig
?我知道一种解决方案是从浏览器复制和粘贴源代码,但是有没有更有效的方法呢?
先感谢您。
php - 在 Symfony 3 中使用注入服务注册自定义树枝扩展会导致错误
我正在使用 Symfony 3.1.3,并且我有一个名为“@app.actionmanager”的服务,它希望将自己注入到 Twig 扩展中以显示可用的操作(这是“@app.actionmanager”的职责)。事实是,每次我运行时:
我收到以下错误:
[LogicException] 无法注册扩展“actionmanager_twig_extension”,因为扩展已被初始化。
扩展声明如下:
如果我删除服务的注入就没有问题。如果我将此类服务的注入更改为另一个(例如@service_container),我会不断收到相同的错误。
似乎在树枝扩展中注入服务会停止将其注册到树枝中,直到其余服务已注册。
我搜索了互联网,没有其他人有这个问题,所以我想我一定做错了什么,只是我不知道是哪个。
你能帮我吗?
PS对不起我的英语不好,这不是我的母语。
编辑:显示 app.actionmanager 声明:
更新:塞拉德是对的。@app.actionmanager 由编译器传递使用。编译器通行证导致此问题。我删除它,一切正常。
我需要编译器传递来构建 app.actionmanager,所以现在我的解决方法是删除 twig 扩展并直接访问 app.actionmanager,将它作为 twig 中的全局变量重新注册。
¿ 有没有其他方法可以做到这一点?
编译器传递文件:
symfony - 使用 Twig_SimpleFilter
我使用了一个不推荐使用的 twig 函数,Twig_Filter_Function。我想改用 Twig_SimpleFilter 。我不是 100% 确定如何使用它。
这是我目前拥有的;
现在Twig_SimpleFilter至少需要两个参数,一个$name,一个$callable就是这两个参数。现在我不能 100% 确定更换 Twig_Filter_Function。这两个参数应该是什么?两个都可以的随机名称,第二个这样的“is_numeric”和“number_format”可以吗?
我已经这样尝试过了,似乎还可以。我只是想 100% 确定,还是我现在应该以完全不同的方式来做?请问有什么帮助吗?
php - php twig 获取传递给扩展函数渲染的变量
我发誓我已经用谷歌搜索过这个并试图理解文档,但我就是不明白。我正在编写一个 twig 函数,我无法理解的是如何访问从函数内部传递给 render 的变量。
所以如果我有这个注册我的扩展并调用渲染:
而example.html就是{{ myfunc('foo') }}
我如何从MyExtension中的myfunc内部访问变量'obj':
symfony - Symfony2.7:Twig 渲染控制器()忽略我的参数
我遇到了一个 symfony exeption 和我尝试获取的一些参数的问题。我完全不知道为什么在对我的代码和互联网进行数千次检查后会出现这个异常。
例外是:
在@Blog\Default\Blog\singlePost.html.twig 中的模板渲染过程中引发了异常(“缺少一些强制参数(“slug”)以生成路由“blogcomment_create”的 URL。”) 29.
路线配置:
我的树枝模板中的代码用于导入我的控制器:
我的行动声明:
我开始对这个例外感到生气,我不知道为什么要得到她,我真的需要一双好眼睛。
我尝试了大量的例子:
如何在 Symfony 2.2 中使用“渲染”在 Twig 中插入控制器?
symfony2 - 树枝 - 如何从树枝模板内部渲染树枝模板
...
这里是函数的转储:
php - 在 Symfony 3 中自动包含动作专有的 JS/CSS
我经常有一些 CSS 规则和 JavaScript 函数,它们仅在由单个控制器操作呈现的单个 Twig 文件中使用。我为这些 CSS 规则和 JavaScript 函数使用单独的文件,并像这样构造它们:
我Jd34TestController
在这个捆绑包中有一个控制器,其中包含frontAction
and requestAction
,渲染front.html.twig
and request.html.twig
。两个 Twig 文件都包含一个常见的 Twig 文件,app/Resources/views/base.html.twig
. 我正在寻找一种自动(神奇地)包含Jd34Test/front.js
和Jd34Test/front.css
何时Jd34Test/front.html.twig
呈现的方法,并且对于请求操作和任何其他操作都是相同的。如果这些 css/js 文件中的任何一个不存在,它应该跳过包含并且不抛出异常。
自动化的最佳方法是什么?我尝试使用Twig_Extension
函数和宏,但是根据$this->requestStack->getCurrentRequest()->get('_controller')
.
symfony - Twig 截断阅读更多链接
我想使用 Twig 的截断过滤器。它工作正常。
我想使用链接作为第三个论点,以阅读有关该文章的更多信息。但它不起作用。
这是代码:
出来的是这样的:
因此,链接在<p>
. 我怎么解决这个问题?
symfony - 在 twig (drupal 8) 中允许沙盒策略中的新方法
使用“字段集合”模块时出现此错误:
导致问题的代码是这个:
解决此问题的最佳方法是什么?是通过将 (uri) 添加到沙盒策略中的允许方法吗?如果是,那么我该怎么做?
我在树枝文档中读到我可以做这样的事情:
但我不明白如何或在哪里放置这段代码。
提前致谢