### 函數
| 方法名 | 作用 |
| :-: | :-: |
| content | 將在此之前輸出的內容包含進來 |
| get\_content | content方法的別名 |
| partial | 在當前模板中動態調取一個代碼片段 |
| super | 獲取(渲染)父模板中的內容 |
| time | 返回當前的 Unix 時間戳 |
| date | 格式化輸出一個本地時間/日期 |
| dump | 輸出一個或多個表達式的結構信息,包括表達式的類型與值。數組將遞歸展開值,通過縮進顯示其結構。 |
| slice | 從字符串/數組中截取一部分 |
`super`
用法示例:
~~~
{# main.volt #}
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
{% block content %}<h1>Table of contents</h1>{% endblock %}
</body>
</html>
{# layout.volt #}
{% extends "main.volt" %}
{% block content %}
{{ super() }}
<h2>contents 2</h2>
{% endblock %}
~~~
渲染后輸出:
~~~
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>Table of contents</h1>
<h2>contents 2</h2>
</body>
</html>
~~~
`time`
用法示例:
~~~
{% set now = time() %}
~~~
`date`
用法示例:
~~~
{{ date('Y年m月d日 H:i:s',1496222729) }}
{# 輸出:2017年5月31日 17:25:29 #}
~~~
`dump`
用法示例:
~~~
{% set data = ['one': 1, 'two': 2, 'three': 3] %}
{{ dump(data) }}
{# 輸出:array(3) { ["one"]=> int(1) ["two"]=> int(2) ["three"]=> int(3) } #}
~~~
`slice`
用法示例:
~~~
{% set data = ['one': 1, 'two': 2, 'three': 3] %}
{% set a = slice(data,0,1) %}
{{ dump(a) }}
<br/>
{% set data = 'abcdef' %}
{% set b = slice(data,0,2) %}
{{ dump(b) }}
輸出:
array(1) { ["one"]=> int(1) }
string(2) "ab"
~~~
### [](https://github.com/jword/stardoc/blob/master/volt%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E.md#%E6%A0%A1%E9%AA%8C%E6%96%B9%E6%B3%95)校驗方法
| 方法名 | 作用 |
| :-: | :-: |
| defined | 檢查變量是否被定義 |
| empty | 檢查變量是否為空(未定義、空字符串、空數組、0、null、false等均認為為空) |
| even | 檢查變量值是否是偶數 |
| odd | 檢查變量值是否是奇數 |
| numeric | 檢查變量值是否是數字 |
| scalar | 檢測變量是否是一個標量(標量變量是指那些包含了 integer、float、string 或 boolean的變量,而 array、object 和 resource 則不是標量。) |
| iterable | 檢查變量值是否可被迭代生成 |
| divisibleby | 檢查變量值是否可被整除 |
| sameas | 檢查變量值是否相同 |
| type | 檢查變量值是否是給定類型 |
`defined`
用法示例:
~~~
{% if name is defined %}
The name variable is defined
{% endif %}
~~~
`empty`
用法示例:
~~~
{% if name is empty %}
The name is null or isn't defined
{% endif %}
~~~
`even`
用法示例:
~~~
{% for key, name in ['Voltron', 'Astroy Boy', 'Bender'] %}
{% if key is even %}
{{ name }}
{% endif %}
{% endfor %}
~~~
`odd`
用法示例:
~~~
{% for key, name in ['Voltron', 'Astroy Boy', 'Bender'] %}
{% if key is odd %}
{{ name }}
{% endif %}
{% endfor %}
~~~
`numeric`
用法示例:
~~~
{% for key, name in ['Voltron', 'Astroy Boy', 'third': 'Bender'] %}
{% if key is numeric %}
{{ name }}
{% endif %}
{% endfor %}
~~~
`scalar`
用法示例: 輸入:
~~~
{% set data = 'a' %}
{% if data is scalar %}
{{ 'True' }}
{% endif %}
{% set data = ['a','b'] %}
{% if data is not scalar %}
{{ 'True' }}
{% endif %}
~~~
輸出:
~~~
True
True
~~~
`iterable`
用法示例:
~~~
{% set data = [1: 'Voltron', 2: 'Astroy Boy'] %}
{% if data is iterable %}
{% for value in data %}
{{ value }}
{% endfor %}
{% endif %}
~~~
`divisibleby`
用法示例:
~~~
{% set data = 10 %}
{% if data is divisibleby(5) %}
10 can divisible by 5
{% endif %}
~~~
`sameas`
用法示例:
~~~
{% set world = "hello" %}
{% if world is sameas("hello") %}
{{ "it's hello" }}
{% endif %}
~~~
`type`
用法示例:
~~~
{% set external = false %}
{% if external is type('boolean') %}
{{ "external is false or true" }}
{% endif %}
~~~
### [](https://github.com/jword/stardoc/blob/master/volt%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E.md#%E5%AE%8F%E5%AE%9A%E4%B9%89%E7%A6%81%E7%94%A8%E7%BB%93%E5%90%88%E7%89%87%E6%AE%B5%E4%BD%BF%E7%94%A8)宏定義(禁用/結合片段使用)
宏定義可以重用模板邏輯,和其它方法一樣可以接收參數和返回值
~~~
{# Macro "display a list of links to related topics" #}
{%- macro related_bar(related_links) %}
<ul>
{%- for link in related_links %}
<li>
<a href="{{ url(link.url) }}" title="{{ link.title|striptags }}">
{{ link.text }}
</a>
</li>
{%- endfor %}
</ul>
{%- endmacro %}
{# Print related links #}
{{ related_bar(links) }}
{# Print related links again #}
{{ related_bar(links) }}
~~~
- 序言
- 基礎
- 安裝
- 規范
- 目錄
- 配置
- 架構
- 入口文件
- 偽靜態配置
- Facade
- 使用行為
- 路由
- 路由定義
- 控制器
- 定義控制器
- 數據庫
- 連接數據庫
- 鏈式操作
- where
- builder
- field
- limit
- page
- order
- group
- find
- select
- value
- count
- sum
- average
- maximum
- minimum
- column
- update
- insert
- delete
- begin
- rollback
- commit
- left
- right
- inner
- for_update
- shared_lock
- cache
- 構造器
- 查詢
- 添加
- 更新
- 刪除
- 模型
- 創建模型
- 自動時間戳
- 模型關聯
- 模型事件
- 數據轉換
- 軟刪除
- 視圖
- 模板
- 日志
- 調試
- 驗證
- CLI命令行
- 標準
- 命名規范
- 語法規范
- 注釋規范
- 設計模式
- 開發提示
- 數據字典
- Markdown使用文檔
- volt模板引擎
- 簡介
- 注釋
- 變量
- 過濾器
- 流程控制
- 循環語句for
- 條件判斷語句if
- 表達式及運算符
- 函數