二.周遊循環
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>