symfony琐碎Tips

一句话知识点:

{{ TextNewsFAQ[0].description|replace({'&nbsp':'',';':''})|striptags|slice(0, 60)~'...' }}
上面一句的含义:从对象TextNewsFAQ中取出第一个元素的'description'属性,接着:
  1. 把里面的'&nbsp',';' 都替换成空(其实就是删除掉);
  2. 去掉其他的html字符(参考php的strip_tags);
  3. 把经过以上处理的字符(也就剩纯text了),截取前60个字符;
  4. 再给补半个省略号(twig中用“~”来连接两个字符串)


关于 include 页面/模块

在src/UserBundle/Resources/views/Demo/index.html.twig 下面引用其他页面的方式:

{{ include("AcmeUserBundle:Dependents:footer.html.twig") }}

但是在src/app/Resources/base.html.twig、scr/UserBundle/Resources/views/layout.html.twig中使用的方式要这样(其实错误提示已经很详细了,格式为"bundle:section:template.format.engine"):

{{ include("AcmeUserBundle:Dependents:footer.html.twig") }}


另外,如果要引用一个带Controller的模版(twig):

{{ render(controller("AcmeUserBundle:ContactUs:contact")) }}

routing.yml:

acem_userbundle_contactus:
    path: /footer_contact_us
    defaults: { _controller: AcmeUserBundle:ContactUs:contact }


详见官方文档:http://symfony.com/doc/current/book/templating.html#including-other-templates


你可能感兴趣的:(symfony琐碎Tips)