Twig - block & extend

Twigblockextend,用起來(lái)就兩字省事
當(dāng)然有條件的可以直接上前后端分離,更省事,看具體情況

定義一個(gè)基礎(chǔ)模板夺姑,類似的頁(yè)面只需要將關(guān)鍵的block塊內(nèi)容覆蓋就搞定

block 定義 介紹
head head頭部 包括title css文件定義
title 頁(yè)面標(biāo)題 可自定義頁(yè)面標(biāo)題
importStyle 引入css樣式文件 自定義頁(yè)面樣式
header 導(dǎo)航欄 自定義導(dǎo)航欄
sidebar 左側(cè)菜單欄
contentHeader 頁(yè)面路徑
content 頁(yè)面主內(nèi)容
footer 頁(yè)面底部
importJs 引入javascript
script 頁(yè)面script

基礎(chǔ)模板base

<!DOCTYPE html>
<html>
<head>
    {% block head %}
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>{% block title %}{% endblock %}</title>
    ......
    {% block importStyle %}
    {% endblock %}

    {% endblock %}
    <!-- Google Font -->
    <!--<link rel="stylesheet" >-->
</head>
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">

    <header class="main-header">
        {% block header %}
        ......
        {% endblock %}
    </header>
    <!-- Left side column. contains the logo and sidebar -->
    <aside class="main-sidebar">
        <!-- sidebar: style can be found in sidebar.less -->
        <section class="sidebar">
            {% block sidebar %}
            ......
            {% endblock %}
        </section>
        <!-- /.sidebar -->
    </aside>

    <!-- Content Wrapper. Contains page content -->
    <div class="content-wrapper">
        <!-- Content Header (Page header) -->
        <section class="content-header">
            {% block contentHeader %}
            <h1>
                Dashboard
                <small>Control panel</small>
            </h1>
            <ol class="breadcrumb">
                <li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
                <li class="active">Dashboard</li>
            </ol>
            {% endblock %}
        </section>

        <!-- Main content -->
        <section class="content">
            {% block content %}
            ......
            {% endblock %}
        </section>
        <!-- /.content -->
    </div>
    <!-- /.content-wrapper -->
    <footer class="main-footer">
        {% block footer %}
        <div class="pull-right hidden-xs">
            <b>Version</b> 2.4.0
        </div>
        <strong>Copyright &copy; 2014-2016 <a >Almsaeed Studio</a>.</strong> All rights
        reserved.
        {% endblock %}
    </footer>
</div>
<!-- ./wrapper -->

{% block importJs %}
......
{% endblock %}

{% block script %}
{% endblock %}
</body>
</html>

模板繼成demo

<!-- @符號(hào)是命名空間,以下表示 cube 命名下路徑 -->
{% extends "@cube/base.php" %}

{% block title %}Entity - Cube{% endblock %}

{% block contentHeader %}
<h1>
    Entity
    <small>實(shí)體類</small>
</h1>
<ol class="breadcrumb">
    <li><a href="#"><i class="fa fa-dashboard"></i> Cube</a></li>
    <li class="active">Entity</li>
</ol>
{% endblock %}

{% block content %}
<div class="box box-warning">
    <div class="box-header with-border">
        <h3 class="box-title">實(shí)體生成器</h3>
    </div>
    <!-- /.box-header -->
    <div class="box-body">
        <form role="form">

            <div class="form-group">
                <label for="namespace">命名空間</label>
                <input type="text" class="form-control" id="namespace" placeholder="請(qǐng)輸入命名空間">
            </div>

            <div class="form-group">
                <label for="db">數(shù)據(jù)庫(kù)</label>
                <select id="db" name="db" class="form-control"></select>
            </div>

            <div class="form-group">
                <label for="tables">數(shù)據(jù)表</label>
                <select id="tables" name="tables" class="form-control"></select>
            </div>


            <div class="col-md-6">
                <div class="box box-solid">
                    <div class="box-header with-border">
                        <i class="fa fa-text-width"></i>
                        <h3 class="box-title">實(shí)體類</h3>
                    </div>
                    <!-- /.box-header -->
                    <div class="box-body">
                    </div>
                    <!-- /.box-body -->
                </div>
                <!-- /.box -->
            </div>

        </form>
    </div>
    <!-- /.box-body -->
</div>
{% endblock %}

{% block script %}
<script>
    $(function () {

        // getDbs
        let dbSelect = $('#db');
        let tableSelect = $('#tables');
        $.get('./ajaxGetConnection', function (response) {
            if (response.code === 200) {
                dbSelect.empty()
                $(response.data).each(function (i, o) {
                    dbSelect.prepend("<option value='" + o + "'>" + o + "</option>");
                })
            }
        });

        let dbs = [];
        dbSelect.change(function (e) {

            let conn = $(this).children('option:selected').val()
            $.post('./ajaxGetTables',{conn:conn}, function (response) {
                if (response.code === 200) {
                    tableSelect.empty()
                    $(response.data).each(function (i, o) {
                        tableSelect.prepend("<option value='" + o + "'>" + o + "</option>");
                    })
                }
            });
        })
    });
</script>
{% endblock %}

搞定

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末掌猛,一起剝皮案震驚了整個(gè)濱河市盏浙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌荔茬,老刑警劉巖只盹,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異兔院,居然都是意外死亡殖卑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)坊萝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)孵稽,“玉大人许起,你說(shuō)我怎么就攤上這事∑邢剩” “怎么了园细?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)接校。 經(jīng)常有香客問(wèn)我猛频,道長(zhǎng),這世上最難降的妖魔是什么蛛勉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任鹿寻,我火速辦了婚禮,結(jié)果婚禮上诽凌,老公的妹妹穿的比我還像新娘毡熏。我一直安慰自己,他們只是感情好侣诵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布痢法。 她就那樣靜靜地躺著,像睡著了一般杜顺。 火紅的嫁衣襯著肌膚如雪财搁。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天躬络,我揣著相機(jī)與錄音尖奔,去河邊找鬼。 笑死洗鸵,一個(gè)胖子當(dāng)著我的面吹牛越锈,可吹牛的內(nèi)容都是我干的仗嗦。 我是一名探鬼主播膘滨,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼稀拐!你這毒婦竟也來(lái)了火邓?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤德撬,失蹤者是張志新(化名)和其女友劉穎铲咨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蜓洪,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纤勒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了隆檀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摇天。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粹湃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泉坐,到底是詐尸還是另有隱情为鳄,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布腕让,位于F島的核電站孤钦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纯丸。R本人自食惡果不足惜偏形,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望液南。 院中可真熱鬧壳猜,春花似錦、人聲如沸滑凉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)畅姊。三九已至咒钟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間若未,已是汗流浹背朱嘴。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粗合,地道東北人萍嬉。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像隙疚,于是被迫代替她去往敵國(guó)和親壤追。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355