循環輸出標簽
VOLIST標簽
volist標簽通常用于查詢數據(ju)集(select方法)的(de)結果輸出,通常模(mo)型的(de)select方法返回的(de)結果是一個二維數組(zu),可(ke)以(yi)直接使用volist標簽進行輸出。 在(zai)控(kong)制器中首先對模(mo)版賦值:
$list = User::all();
$this->assign('list',$list);
在模版(ban)定義如下,循環輸出用戶(hu)的編號和姓名:
{volist name="list" id="vo"}
{$vo.id}:{$vo.name}<br/>
{/volist}
Volist標簽的name屬(shu)性表(biao)示(shi)模板賦值的變量名(ming)稱,因此(ci)不可(ke)隨意(yi)在(zai)模板文(wen)件(jian)中改變。id表(biao)示(shi)當前的循環變量,可(ke)以隨意(yi)指定,但確保(bao)不要和name屬(shu)性沖突,例如:
{volist name="list" id="data"}
{$data.id}:{$data.name}<br/>
{/volist}
支持輸出查詢(xun)結果中(zhong)的部分數據,例如輸出其中(zhong)的第5~15條(tiao)記錄
{volist name="list" id="vo" offset="5" length='10'}
{$vo.name}
{/volist}
輸出偶數記錄
{volist name="list" id="vo" mod="2" }
{eq name="mod" value="1"}{$vo.name}{/eq}
{/volist}
Mod屬性還用于控制一定記錄的換行(xing),例如:
{volist name="list" id="vo" mod="5" }
{$vo.name}
{eq name="mod" value="4"}<br/>{/eq}
{/volist}
為(wei)空的時候(hou)輸出提示:
{volist name="list" id="vo" empty="暫(zan)時沒有數據" }
{$vo.id}|{$vo.name}
{/volist}
empty屬性不支持直(zhi)接傳入(ru)html語(yu)法,但可以支持變量輸出(chu),例如:
$this->assign('empty','<span class="empty">沒(mei)有數據</span>');
$this->assign('list',$list);
然后在模板中使用:
{volist name="list" id="vo" empty="$empty" }
{$vo.id}|{$vo.name}
{/volist}
輸出循環變(bian)量:
{volist name="list" id="vo" key="k" }
{$k}.{$vo.name}
{/volist}
如(ru)果(guo)沒有指定(ding)key屬(shu)性的話(hua),默認使用循環變量(liang)i,例如(ru):
{volist name="list" id="vo" }
{$i}.{$vo.name}
{/volist}
如果要輸出數(shu)組的索引,可以直(zhi)接使用key變(bian)量(liang),和循環變(bian)量(liang)不同(tong)的是,這個key是由(you)數(shu)據本身決定,而不是循環控制的,例如:
{volist name="list" id="vo" }
{$key}.{$vo.name}
{/volist}
模(mo)板(ban)中(zhong)可以直(zhi)接使用(yong)函數設定數據(ju)集,而不需要在控(kong)制器中(zhong)給(gei)模(mo)板(ban)變(bian)量賦值傳入數據(ju)集變(bian)量,如(ru):
{volist name=":fun('arg')" id="vo"}
{$vo.name}
{/volist}
FOREACH標簽
foreach標簽類似與volist標簽,只是(shi)更(geng)加簡(jian)(jian)單(dan),沒有太多額(e)外的(de)屬性,最簡(jian)(jian)單(dan)的(de)用法(fa)是(shi):
{foreach $list as $vo}
{$vo.id}:{$vo.name}
{/foreach}
該用法解析后是最簡潔的。
也(ye)可以使用(yong)下(xia)面(mian)的用(yong)法:
{foreach name="list" item="vo"}
{$vo.id}:{$vo.name}
{/foreach}
name表示(shi)數(shu)據源 item表示(shi)循環變量。
可以輸出索(suo)引,如(ru)下(xia):
{foreach name="list" item="vo" }
{$key}|{$vo}
{/foreach}
也可(ke)以定義索引的變量名
{foreach name="list" item="vo" key="k" }
{$k}|{$vo}
{/foreach}
FOR標簽
用法:
{for start="開始值(zhi)" end="結(jie)束值" comparison="" step="步(bu)進值" name="循環變量名" }
{/for}
開始值(zhi)(zhi)、結束值(zhi)(zhi)、步進值(zhi)(zhi)和循環變量(liang)都可以支(zhi)持變量(liang),開始值(zhi)(zhi)和結束值(zhi)(zhi)是必須,其他(ta)是可選。comparison 的默認(ren)值(zhi)(zhi)是lt,name的默認(ren)值(zhi)(zhi)是i,步進值(zhi)(zhi)的默認(ren)值(zhi)(zhi)是1,舉例如下:
{for start="1" end="100"}
{$i}
{/for}
解析(xi)后的代碼(ma)是(shi)
for ($i=1;$i<100;$i+=1){
echo $i;
}
