thinkphp中volist的多重迴圈,標籤巢狀
關於volist,thinkphp官方手冊說的非常清楚,其實就相當於foreach功能,只是用在模板裡面,很方便,實用。
volist的二重迴圈,標籤巢狀是這樣的。
在操作裡寫如下程式碼:假定有如下陣列
$listArray=array(0=>array('order_id'=>'1','product_item'=>array(0=>array('name'=>'a','price'=>'222'),1=>array('name'=>'b','price'=>'500'))),
1=>array('order_id'=>'2','product_item'=>array(0=>array('name'=>'c','price'=>'566'),1=>array('name'=>'d','price'=>'6666'))));
在對應的模板裡我們用volist
<volist name="listArray" id="vo">
{$vo.order_id}<br>
<volist name="vo.product_item" id="item">
{$item.name}{$item.price}
</volist>
</volist>
得出想要的結果。
手冊裡這樣解釋,還是很全面的。
Volist標籤主要用於在模板中迴圈輸出資料集或者多維陣列。
volist標籤(迴圈輸出資料) |
|
閉合 |
非閉合標籤 |
屬性 |
name(必須):要輸出的資料模板變數 id(必須):迴圈變數 offset(可選):要輸出資料的offset length(可選):輸出資料的長度 key(可選):迴圈的key變數,預設值為i mod(可選):對key值取模,預設為2 empty(可選):如果資料為空顯示的字串 |
通常模型的select方法返回的結果是一個二維陣列,可以直接使用volist標籤進行輸出。
在Action中首先對模版賦值:
$User = M('User');
$list = $User->select();
$this->assign('list',$list);
在模版定義如下,迴圈輸出使用者的編號和姓名:
<volist name="list"id="vo">
{$vo.id}
{$vo.name}
</volist>
Volist標籤的name屬性表示模板賦值的變數名稱,因此不可隨意在模板檔案中改變。id表示當前的迴圈變數,可以隨意指定,但確保不要和name屬性衝突,例如:
<volist name="list"id="data">
{$data.id}
{$data.name}
</volist>
支援輸出部分資料,例如輸出其中的第5~15條記錄
<volist name="list"id="vo" offset="5" length='10'>
{$vo.name}
</volist>
輸出偶數記錄
<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>
輸出迴圈變數
<volist name="list"id="vo" key="k" >
{$k}.{$vo.name}
</volist>
如果沒有指定key屬性的話,預設使用迴圈變數i,例如:
<volist name="list"id="vo" >
{$i}.{$vo.name}
</volist>
如果要輸出陣列的索引,可以直接使用key變數,和迴圈變數不同的是,這個key是由資料本身決定,而不是迴圈控制的,例如:
<volist name="list"id="vo" >
{$key}.{$vo.name}
</volist>
volist還有一個別名iterate,用法和volist是一樣。
從2.1版開始允許使用函式設定資料集,如:
<volist name=":fun('arg')" id="vo">{$vo.name}</volist>
相關文章
- ThinkPHP學習(四)volist標籤高階應用之多重巢狀迴圈PHP巢狀
- 迴圈_巢狀巢狀
- Python 迴圈巢狀Python巢狀
- 巢狀迴圈成本消耗巢狀
- JSP中巢狀struts標籤的問題JS巢狀
- Html 標籤的巢狀規則HTML巢狀
- html標籤的巢狀規則HTML巢狀
- HTML標籤巢狀規則HTML巢狀
- python怎麼迴圈巢狀Python巢狀
- python 跳出巢狀迴圈方法Python巢狀
- 迴圈中巢狀非同步操作的流程控制巢狀非同步
- java中如何將巢狀迴圈效能提高500倍Java巢狀
- Sql 巢狀迴圈最佳化案例SQL巢狀
- MySQL Join原理分析(緩衝塊巢狀與索引巢狀迴圈)MySql巢狀索引
- iOS多重巢狀頁面iOS巢狀
- Python的if else 巢狀 和forin while 迴圈Python巢狀While
- java跳出多重迴圈Java
- 最佳化兩個簡單的巢狀迴圈巢狀
- while + else 使用,while死迴圈與while的巢狀,for迴圈基本使用,range關鍵字,for的迴圈補充(break、continue、else) ,for迴圈的巢狀,基本資料型別及內建方法While巢狀資料型別
- 塊級元素不能夠巢狀在<p>標籤元素中巢狀
- python 利用 for ... else 跳出雙層巢狀迴圈Python巢狀
- 兩表連線一:巢狀迴圈連線巢狀
- Linux Shell程式設計(17)——巢狀迴圈Linux程式設計巢狀
- Oracle的表連線方法(二)巢狀迴圈連線Oracle巢狀
- 關於迴圈巢狀nested loops的一點分析巢狀OOP
- 正則匹配閉合HTML標籤(支援巢狀)HTML巢狀
- 瞭解巢狀迴圈聯接、合併聯接巢狀
- a標籤裡面巢狀一個a標籤,點選子連結標籤時,同時觸發了父標籤a巢狀
- 標籤列印軟體中如何迴圈列印點陣圖圖片
- MyBatis中批量插入資料,多重forEach迴圈MyBatis
- Python中如何避免字典和元組的多重巢狀的方法Python巢狀
- 巢狀類遞迴巢狀遞迴
- python基礎語法迴圈巢狀和列表(一)Python巢狀
- python基礎語法迴圈巢狀和列表(二)Python巢狀
- ThinkPHP自定義標籤PHP
- 高效遍歷匹配Json資料,避免巢狀迴圈[轉]JSON巢狀
- 關於elememt-ui中dialog彈窗多重巢狀的問題UI巢狀
- 素顏>php>正文thinkphp-volist3PHP