首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP 模板中 volist 標籤遍歷數組完整示例

     編輯:PHP 綜合知識

場景

在 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='暫無數據'

進階用法

1. 斑馬紋表格


    
{$vo.name}

2. 嵌套遍歷(二維數組)

// 控制器
$data = [
    ['category' => '水果', 'items' => [['name'=>'蘋果'],['name'=>'香蕉']]],
    ['category' => '蔬菜', 'items' => [['name'=>'青菜'],['name'=>'蘿卜']]],
];

    

{$cat.category}

  • {$item.name}

3. 遍歷對象集合(如模型查詢結果)


    {$user->getNickName()} // 調用模型方法

對比:DedeCMS 標簽寫法

{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 可實現分頁、斑馬紋、空狀態等豐富交互效果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved