循環(huán)輸出標(biāo)簽

VOLIST標(biāo)簽

volist標(biāo)簽通常用于查詢數(shù)據(jù)集(select方法)的結(jié)果輸出,通常模型的select方法返回的結(jié)果是一個(gè)二維數(shù)組,可以直接使用volist標(biāo)簽進(jìn)行輸出。 在控制器中首先對(duì)模版賦值:

$list = User::all();
$this->assign('list',$list);

在模版定義如下,循環(huán)輸出用戶的編號(hào)和姓名:

{volist name="list" id="vo"}
{$vo.id}:{$vo.name}<br/>
{/volist}

Volist標(biāo)簽的name屬性表示模板賦值的變量名稱,因此不可隨意在模板文件中改變。id表示當(dāng)前的循環(huán)變量,可以隨意指定,但確保不要和name屬性沖突,例如:

{volist name="list" id="data"}
{$data.id}:{$data.name}<br/>
{/volist}

支持輸出查詢結(jié)果中的部分?jǐn)?shù)據(jù),例如輸出其中的第5~15條記錄

{volist name="list" id="vo" offset="5" length='10'}
{$vo.name}
{/volist}

輸出偶數(shù)記錄

{volist name="list" id="vo" mod="2" }
{eq name="mod" value="1"}{$vo.name}{/eq}
{/volist}

Mod屬性還用于控制一定記錄的換行,例如:

{volist name="list" id="vo" mod="5" }
{$vo.name}
{eq name="mod" value="4"}<br/>{/eq}
{/volist}

為空的時(shí)候輸出提示:

{volist name="list" id="vo" empty="暫時(shí)沒有數(shù)據(jù)" }
{$vo.id}|{$vo.name}
{/volist}

empty屬性不支持直接傳入html語法,但可以支持變量輸出,例如:

$this->assign('empty','<span class="empty">沒有數(shù)據(jù)</span>');
$this->assign('list',$list);

然后在模板中使用:

{volist name="list" id="vo" empty="$empty" }
{$vo.id}|{$vo.name}
{/volist}

輸出循環(huán)變量:

{volist name="list" id="vo" key="k" }
{$k}.{$vo.name}
{/volist}

如果沒有指定key屬性的話,默認(rèn)使用循環(huán)變量i,例如:

{volist name="list" id="vo"  }
{$i}.{$vo.name}
{/volist}

如果要輸出數(shù)組的索引,可以直接使用key變量,和循環(huán)變量不同的是,這個(gè)key是由數(shù)據(jù)本身決定,而不是循環(huán)控制的,例如:

{volist name="list" id="vo"  }
{$key}.{$vo.name}
{/volist}

模板中可以直接使用函數(shù)設(shè)定數(shù)據(jù)集,而不需要在控制器中給模板變量賦值傳入數(shù)據(jù)集變量,如:

{volist name=":fun('arg')" id="vo"}
{$vo.name}
{/volist}

FOREACH標(biāo)簽

foreach標(biāo)簽類似與volist標(biāo)簽,只是更加簡(jiǎn)單,沒有太多額外的屬性,最簡(jiǎn)單的用法是:

{foreach $list as $vo} 
    {$vo.id}:{$vo.name}
{/foreach}

該用法解析后是最簡(jiǎn)潔的。

也可以使用下面的用法:

{foreach name="list" item="vo"}
    {$vo.id}:{$vo.name}
{/foreach}

name表示數(shù)據(jù)源 item表示循環(huán)變量。

可以輸出索引,如下:

{foreach name="list" item="vo" }
    {$key}|{$vo}
{/foreach}

也可以定義索引的變量名

{foreach name="list" item="vo" key="k" }
   {$k}|{$vo}
{/foreach}

FOR標(biāo)簽

用法:

{for start="開始值" end="結(jié)束值" comparison="" step="步進(jìn)值" name="循環(huán)變量名" }
{/for}

開始值、結(jié)束值、步進(jìn)值和循環(huán)變量都可以支持變量,開始值和結(jié)束值是必須,其他是可選。comparison 的默認(rèn)值是lt,name的默認(rèn)值是i,步進(jìn)值的默認(rèn)值是1,舉例如下:

{for start="1" end="100"}
{$i}
{/for}

解析后的代碼是

for ($i=1;$i<100;$i+=1){
    echo $i;
} 
文檔最后更新時(shí)間:2018-06-09 15:50:33

文檔
目錄

深色
模式

切換
寬度