您当前的位置: 首页 > 

symfony框架Twig模板语言的使用

彭世瑜 发布时间:2018-07-17 11:26:43 ,浏览量:3

php的Twig模板语言:类似python的jinja2,语法什么的都是类似python

文档

  • https://twig.symfony.com/doc/3.x/intro.html
模板继承

模板路径:app/Resources/views/

母版:base.html.twig

DOCTYPE html>






{% block title %}自定义标题{% endblock title %}

















    
    MyWebSite


{% block body %}
{% endblock body %}



list.html.twig

{% extends "base.html.twig" %}

{% block title %}MyWebSite{% endblock title %}

{% block body %}

    
    Welcome to MyWebSite!
    

{% endblock body %}

show.html.twig

{% extends "base.html.twig" %}

{% block title %}博客内容{% endblock title %}

{% block body %}

    
    我的第一篇博客
    

{% endblock body %}

list.html.twig 和 show.html.twig 都继承了 base.html.twig,拥有了相同的页面布局

变量传递

文件路径:src/AppBundle/Controller/BlogController.php

return $this->render('blog/show.html.twig', 
	array('title' => '博客标题', 'content' => '博客内容')
);

修改show.html.twig中block body


    
    {{ title }}
    


    
    {{ content }}
    

变量传递通过 {{ }} 这样的符号来传递

传递类型举例读取方式变量array(‘title’ => ‘博客标题’){{ title }}array结构array(‘content’ => $content){{ content[‘time’] }}类结构array(‘content’ => $content){{ content.time }}php原生方法去掉 html标签方法{{ content | strip_tags }} 流程控制

src/AppBundle/Controller/BlogController.php

        $content = array();
        $content[] = array('category' => '类别1', 'text' => '内容1');
        $content[] = array('category' => '类别2', 'text' => '内容2');
        $content[] = array('category' => '类别1', 'text' => '内容3');
        $content[] = array('category' => '类别2', 'text' => '内容4');
        return $this->render('blog/show.html.twig', array('title' => '博客标题', 'content' => $content));

修改app/Resources/views/blog/show.html.twig,改成:

{% for cont in content %}
{% if cont['category'] == '类别2' %}

    
    {{ cont['text'] }}
    

{% endif %}
{% endfor %}

循环遍历 : {% for cont in content %} 逻辑判断: {% if cont['category'] == '类别2' %}

链接生成
{ path({{ cont['text'] }}

blog_list为router.yml里边配置的路由名称

常用模板语法

// 默认值
{{ var|default('var is not defined') }}

关于Twig的详细使用可参考

  1. Twig, 灵活、快速、安全的PHP模板语言

  2. 教你成为全栈工程师(Full Stack Developer) 九-让模板文件帮你快速开发网页

关注
打赏
1688896170
查看更多评论

彭世瑜

暂无认证

  • 3浏览

    0关注

    2727博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.2894s