cat标签是获取栏目信息的标签。和list标签一样支持where条件设置,分页、排序、查询信息副表,栏目表等功能。
{cat pid="1"}
<li><a href="{$v.caturl}">{$v.name}</a></li>
{/cat}
变量 | 字段类型 | 名称 | 备注 |
{$v} | Array | 查询数据的结果集 | 如果 _v设置了值,这里变量也要对应起来 |
{$v.caturl} | String | 栏目链接 | |
{$key} | Int | 数组键名变量名 | 从0开始,如果_key设置了值,这里变量也要对应起来 |
{cat pid="1"}
{cat pid="$v['catid']"}
<li><a href="{$v.caturl}">{$v.name}</a></li>
{/cat}
{/cat}
当cat有嵌套的情况下,防止多个$v混淆,我们可以修改$v的变量名称
_v="v2",这样对应输出的变量就是 $v2
{cat pid="1" _key="v2"}
{cat pid="$v2['catid']"}
<li><a href="{$v.caturl}">{$v.name}</a></li>
{/cat}
{/cat}
同样也可以对数组键名变量名修改
_key="key2",这样对应输出的变量就是 $key2
可以根据指定条件进行sql查询,例如我们要查询所有modelid="1"的栏目信息
{cat modelid="1"}
<li><a href="{$v.caturl}">{$v.name}</a></li>
{/cat}
标签必须以花括号开始和结尾,并且各字段名之间需要空格,而且标签值必须用双引号不能用单引号。
以下是错误的示例:
//禁止使用单引号
{list pid='1' _limit="10"}
<li><a href="{$v.caturl}">{$v.name}</a></li>
{/list}
//字段之间需要有空格
{list pid='1'_limit="10"}
<li><a href="{$v.caturl}">{$v.name}</a></li>
{/list}
标签支持两种参数类型
field="value"
_field="value"
前面是标签名称,后面是标签内容。第二种类型带有下划线,那么他们有什么区别呢?
针对不带下划线的参数(filed="value")这样的应用于查询条件,比如查询city为上海的,可以写做{list catid="" city="上海"}
带下划线的参数叫附件条件,比如查询副表(_data="1"),排序(_order="xxx desc"),栏目表(_cat="1"),栏目副表(_cat_data="1"),分页(_page_on="1")等
附件条件用于设置查询数量,排序方式,查询副表等操作。
字段 | 说明 | 必填 | 默认 | 备注 |
pid | 父栏目catid | No | 0 | |
_data | 查询cat_data表 | No | 0 | 是否查询cat表,可在循环体里使用{$v.xxx}调用 |
_order | 排序 | No | sort asc,catid asc | |
_group | group排列 | No | ||
_limit | 查询条数 | No | 不限 | |
_having | mysql having语法 | No | ||
_join | join查询 | No | ||
_field | 只针对主表字段 | No | 主表所有字段 | |
_key | 数组键名变量名 | No | key | 通常在多层循环嵌套时需要修改变量名 |
_v | 数组循环变量名 | No | v | 在循环体里用的如:{$v.title} |
_page_on | 开启分页 | No | No | 是否开启分布 |
_page_list_rows | 每页显示多少条 | No | 20 | 默认每页显示20条 |
_page_query | url额外参数 | No | 当前所有url参数 | 默认带上当前url参数 |
_page_display_var | 输出分页变量(用于显示分页的) | No | page | 在对应的地方可以输出{$page|raw } |
_page_url_var | 传递分页码变量 | No | p | 用于url传递的页码的,当一个页面中有多个分页的时候需要命名不同的变量名 |
默认排序条件为:_order="sort asc,catid asc" //以上为默认排序规则
_field="字段名" //多个字段用,号隔开
默认查询所有字段
{cat pid="1" _field="catid,name"}
<li><a href="{$v.caturl}">{$v.name}</a></li>
{/cat}
查询10条数据
{cat pid="1" _limit="10"}
<li><a href="{$v.caturl}">{$v.name}</a></li>
{/cat}
_data="1"
查询cat_data表
可在循环体里使用{$v.xxx}调用
{cat pid="1" _data="1"}
<li><a href="{$v.caturl}">{$v.name}</a></li>
{/cat}
标签支持分页,即根据当前查询出来的数据可以按分页来显示,这一功能非常适用于一个页面中有多个分页的需求。
字段 | 说明 | 必填 | 默认 | 备注 |
_page_on | 开启分页 | No | No | 是否开启分布 |
_page_list_rows | 每页显示多少条 | No | 20 | 默认每页显示20条 |
_page_query | url额外参数 | No | 当前所有url参数 | 默认带上当前url参数 |
_page_display_var | 输出分页变量(用于显示分页的) | No | page | 在对应的地方可以输出{$page|raw } |
_page_url_var | 传递分页码变量 | No | p | 用于url传递的页码的,当一个页面中有多个分页的时候需要命名不同的 |
父栏目ID为:41,查询副表数据,开启栏目分页,每页显示2条数据,排序方式:sort asc,catid asc",查询字段:name,循环变更:r
{cat pid="41" _data="true" _page_on="true" _page_list_rows="2" _order="sort asc,catid asc" _field="name" _v="r"}
<a href="{$r.caturl}">{$r.name}</a>
{/cat}
<div>{$page|raw }</div>