### 函数
| 方法名 | 作用 |
| :-: | :-: |
| 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
- 表达式及运算符
- 函数