天天看點

内置标簽2

二.周遊循環

ThinkPHP 内置标簽提供了 Volist 标簽、Foreach 标簽和 For 标簽。

//給模版傳一個資料庫資料

$user = M('User');

$this->assign('data', $user->select());

$this->display();

Volist 标簽:通常用于查詢資料集的結果輸出,通過 select()方法傳回的是一個二

維數組,可以直接使用 volist 标簽進行輸出。

<ul>

<volist name="data" id="arr">

<li>{$arr.id} -- {$arr.user} -- {$arr.mail}</li>

</volist>

</ul>

PS:這裡的 name="data"中的 data 是控制器給模版定義的資料變量,要對應;這裡的 id="arr"中的 arr 是将要周遊循環的數組名,可以自定義。

//offset 從第幾條開始,起始值 0,length 共多少條

<volist name="data" id="arr" offset="5" length="10">

<li>{$arr.id} -- {$arr.user} -- {$arr.mail}</li>

</volist>

//mod 求目前餘數,目前 index 除以 2 餘 1,輸出偶數

<volist name="data" id="vo" mod="2">

<eq name="mod" value="1">

<li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li>

</eq>

</volist>

//沒有資料的情況下使用 empty 填充

<volist name="data" id="vo" empty="沒有任何資料">

<li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li>

</volist>

//empty 屬性不支援 HTML 直接輸入,但可以通過變量輸出

$this->assign('empty', '<span style="color:red">沒有任何資料</span>');

<volist name="data" id="vo" empty="$empty">

//通過 key 輸出循環周遊的變量

<volist name="data" id="vo" key="k">

<li>{$k} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>

</volist>

//沒有指定 k,也可以用 i 變量輸出

<li>{$i} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>

//key 變量,可以直接輸出索引值,從 0 開始

<li>{$key} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>

Foreach 标簽和 Volist 标簽類似,隻不過 Foreach 标簽更加簡單,沒有額外屬性。

//隻支援 key 屬性,但{$key}變量支援

<ul>

<foreach name="data" item="vo">

<ul>{$vo.id} -- {$vo.user}</ul>

</foreach>

</ul>

For标簽就是簡單的循環标簽。

//從 1 到 99 循環

<for start="1" end="100">

{$i}<br />

</for>

除了start和end必須值,還有三個可選值。comparison是大于還是小于,預設值為lt(<) ;name是循環變量名,預設值為i;step是步進值,預設為1。

//完整形式

<for start="1" end="100" comparison="lt" step="2" name="k">

{$i}<br />

</for>