草庐IT

php - Symfony2 - 在 Twig 部分/子请求中获取主请求的当前路由

在单独Controller渲染的Twig部分中,我想检查当前主路由是否等于比较路由,因此我可以将列表项标记为事件。我该怎么做?尝试在BarController中获取当前路线,例如:$route=$request->get('_route');返回null。Uri也不是我要找的,因为在bar的Twig中调用以下代码:app.request.uri返回的路由类似于:localhost/_fragment?path=path_to_bar_route完整示例主Controller:FooController扩展Controller{publicfunctionfooAction(){}}fo

php - Twig 检查文件是否存在

你好,我正在使用slim框架和twig,这是我当前在php中的代码:$filename='/path/to/foo.txt';if(file_exists($filename)){echo"Thefile$filenameexists";}else{echo"Thefile$filenamedoesnotexist";}现在我想将if语句放入我的模板文件中。我如何在我的Twig模板中使用file_exists函数来检查文件是否存在? 最佳答案 您可以创建自己的函数或test并将参数传递给PHP函数。$test=newTwig_Sim

php - 直接从 Twig 中的 ChoiceType 元素访问特定选项

我的项目要求我重建大型系统的功能,同时保留数据库结构(出于历史计费原因)。我从Symfony2.0.x开始,并开始升级到Symfony2.1.2。以前,我能够使用点表示法在Twig中直接访问单选组的(多=假,展开=真)个人选项。例如,在我的表单中,我定义了类似于此的元素:$builder->add('settings_group','choice',array('choices'=>array('existing'=>'Apre-existingsettinggroup','override'=>'Specifyanoverrideinstead'),'multiple'=>false

php - Symfony2 表格 : How to render the same element twice in the same view

我有一个Controller,我在其中创建一个带有两个下拉列表的表单。当我呈现我的View时,我希望在页面的顶部和底部有相同的表单元素。问题是表单元素(下拉列表)仅显示在页面顶部,即使我要求twig也将它们也放在底部。这是我想要的:1和2是下拉列表。我想在页面的顶部和底部复制它。关于如何做到这一点有什么想法吗?顶部内容和底部内容,其中两个下拉列表位于一个单独的twig文件(searchPanel.html.twig)中,并且该文件包含在页面中{%include"MyBundle:Search:searchPanel.html.twig"%}这是searchPanel.html.twig

php - 独立安装 TWIG 模板引擎,无需 Composer

我要安装使用Twig就像在模块中一样,我将/lib/twig/内容复制到我的模块文件夹中名为/twig的文件夹中。我把require_once('twig/Autoloader.php');在我的模块的顶部,我使用Twig_Autoloader::register()来尝试让它工作,但是一旦我使用$this->loader=newTwig_Loader_Filesystem($path);$this->twig=newTwig_Environment($this->loader,array(//options));我得到这个错误:fatalerror:在中找不到类“Twig_Loade

php - 自定义 Symfony2 过滤器不使用自定义 Twig 标签触发

TL:DR;添加type="application/dart"使Assetic忽略过滤器标志filter=MyCustomFilter。删除后一个属性类型会触发filter=MyCustomFilter就好了。但我需要过滤器和属性。如何让Assetic在具有type=application/dart属性时触发我的自定义过滤器?我认为部分问题在于它只接受type=application/javascript或空的htmltype属性来触发过滤器。我不确定从这里到哪里去。详细信息:我想为Dart文件制作一个类似于javascripts的标签。{%darts'@AcmeBundle/Reso

php - Symfony 3 在 Twig 中使用删除操作

所以我从CRUDgenerator复制了基本的删除操作:/***@Route("category/delete/{id}",name="category_delete")*@Method("DELETE")*/publicfunctiondeleteAction(Request$request,$id){$repository=$this->getDoctrine()->getRepository('AppBundle:Category');$category=$repository->find($id);$form=$this->createDeleteForm($category)

php - isset() 和 !empty() 的 Twig 等价物是什么?

以下PHP三元条件的Twig等价物是什么?我很不光彩地尝试过这个,但它看起来不太好,当然,它不起作用:{{myVarisdefinedandmyVarnotempty?myVar:'#button-cart'}} 最佳答案 参见Tests对于所有测试。要使用测试,请使用variableistest。您在“空”测试中缺少"is"。感谢@DarkBee指出了这个小错误。但要回答您最初的问题,请查看Twig/Extension/Core.php.该类(class)展示了每个Twig测试如何“在幕后”工作。这是一个包含所有测试及其PHP等效

php - 从没有 Twig 过滤器的函数返回原始 HTML

我有一个具有返回HTML的函数的类。classMyParser{publicfunctiongetHTML(){return'HelloWorld';}}然后在我的Twig模板中,我使用raw过滤器输出文字HTML,而不是让Twig为我转义它:{{myParserInstance.HTML|raw}}有没有办法让函数(不是TwigFilterorFunction)返回原始HTML并按原样呈现?或者我将如何创建一个Twig过滤器或函数来无缝地为我做这件事?例如,我不会想要这样的东西:{{render(myParserInstance)}}相反,我只想使用HTML函数调用。这是完全可能的还

php - Drupal 8 自定义 block (模块)创建 Twig 模板文件

我有一个自定义模块,它创建一个包含字段元素的自定义block。一切正常,但我需要为这个block设置主题。我检查了这里的其他帖子,但没有成功。我已经启用了twig调试并获得了主题建议。仍然没有运气。谁能给我指出正确的方向。这是我目前所拥有的:我的模块/我的模块.模块//这里没有相关内容my_module/src/Plugin/Block/myModuleBlock.php'select','#title'=>$this->t('test'),'#description'=>$this->t('testlist'),'#options'=>array('Test'=>$this->t('