在 ThinkPHP 模板中,<volist> 是最常用的數組遍歷標籤,支持多維數組、對象集合、分頁數據等。本文通過對比演示其基本語法與輸出效果。
1, 'username' => 'mgckid', 'sex' => 1],
['id' => 2, 'username' => 'yezi', 'sex' => 0],
];
$this->assign('data', $data);
$this->display();
}
?>
{$vo.id}---------{$vo.username}-----------{$vo.sex}
1---------mgckid-----------1 2---------yezi-----------0
| 屬性 | 說明 | 示例 |
|---|---|---|
name | 模板變量名(控制器 assign 的鍵) | name='data' |
id | 循環變量別名,模板中用 {$vo.xxx} 訪問 | id='vo' |
offset | 開始索引(從 0 計) | offset='1' |
length | 遍歷長度 | length='5' |
key | 鍵名變量(可選) | key='k' → {$k} |
mod | 取模數,配合 {$vo.mod} 實現斑馬紋 | mod='2' |
empty | 數組為空時顯示的內容 | empty='暫無數據' |
| {$vo.name} |
// 控制器
$data = [
['category' => '水果', 'items' => [['name'=>'蘋果'],['name'=>'香蕉']]],
['category' => '蔬菜', 'items' => [['name'=>'青菜'],['name'=>'蘿卜']]],
];
{$cat.category}
- {$item.name}
{$user->getNickName()} // 調用模型方法
{dede:arclist typeid='20' row='5' titlelen='40'}
[field:title/] [field:arcurl/] [field:pubdate/]
{/dede:arclist}
ThinkPHP 的 volist 更接近原生 PHP 邏輯,變量作用域清晰,支持任意 PHP 表達式,擴展性更強。
name 寫錯導致「變量未定義」——檢查控制器 assign 的鍵名。</volist> 導致模板編譯錯誤。$vo['key'] 而非 {$vo.key},模板引擎不解析 PHP 語法。volist 是 ThinkPHP 模板輸出列表的核心標籤,掌握其屬性與嵌套用法,能覆蓋 95% 的遍歷場景。配合 mod、empty、offset/length 可實現分頁、斑馬紋、空狀態等豐富交互效果。