使用query查询将其它数据添加到模板中
ZKEASOFT August 18, 2024
什么是Query
使用Query
,可以将对应的内容引入到模板中显示。例如可以在文章模板中引入产品,视频等。
语法
Query语法和SQL有点类似,但是请注意,这并不是SQL,不支持复杂的语法。
基础语法:
{% query %}
SELECT <variable name> FROM <collections> [FIND <ID>] | { [WHERE <search condition>] [SKIP <num>] [TAKE <num>] } ORDER BY <order by expression>
{% endquery %}
SELECT
<variable name>:是变量名,这个变量名将在后面绑定时使用。FROM
<collections>:数据源FIND
<ID>:按ID查找数据,仅返回单个数据,ID为数字或者字符串,字符串用双引号表示,"{ID}"WHERE
<search condition>:按条件过滤,结果以数组形式返回。注意:FIND与WHERE只能二选一SKIP
<num>:跳过一定数量的数据TAKE
<num>:提取一定数据的数据ORDER BY
<order by expression>:排序
可用的<collections>:
数据源名称 | 描述 |
Articles |
文章 |
ArticleTypes | 文章类别 |
ArticleGalleries | 文章组 |
Products | 产品 |
ProductCategories | 产品类别 |
ProductGalleries |
产品组 |
Videos | 视频 |
VideoTypes | 视频类别 |
VideoGalleries | 视频组 |
Comments | 评论 |
MessageBoard | 留言板 |
Basket | 购物车 |
Carousels | 焦点图 |
Cultures | 语言 |
Navigations | 导航 |
示例
下面是一个简单示例,按一定的条件查询出产品,并且按创建时间倒序:
{% query %}
select prods from products where id=1 or title like "% FPS %" and createdate >= "2017-11-17 15:30:20" order by createdate desc
{% endquery %}
{% for item in prods %}
<h3>
{{ item.Title }}
</h3>
{% endfor %}
将会输出:
<h3>
Alloy FPS 机械游戏键盘
</h3>
<h3>
Cloud Revolver 游戏耳机
</h3>