查看演示
Menu
快速导航

cat

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>

 

快速导航