thinkphp中volist的多重迴圈,標籤巢狀

2021-08-27 12:33:01 字數 1978 閱讀 3771

關於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標籤主要用於在模板中迴圈輸出資料集或者多維陣列。

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);

在模版定義如下,迴圈輸出使用者的編號和姓名:

"list"id=

"vo"

>

volist>

volist標籤的name屬性表示模板賦值的變數名稱,因此不可隨意在模板檔案中改變。id表示當前的迴圈變數,可以隨意指定,但確保不要和name屬性衝突,例如:

"list"id=

"data"

>

volist>

支援輸出部分資料,例如輸出其中的第5~15條記錄

"list"id=

"vo" offset=

"5" length=

'10'

>

volist>

輸出偶數記錄

"list"id=

"vo" mod=

"2"

>

"mod"value=

"1">

eq>

volist>

mod屬性還用於控制一定記錄的換行,例如:

"list"id=

"vo" mod=

"5"

>

"mod"value=

"4">

eq>

volist>

輸出迴圈變數

"list"id=

"vo" key=

"k"

> .

volist>

如果沒有指定key屬性的話,預設使用迴圈變數i,例如:

"list"id=

"vo"

> .

volist>

如果要輸出陣列的索引,可以直接使用key變數,和迴圈變數不同的是,這個key是由資料本身決定,而不是迴圈控制的,例如:

"list"id=

"vo"

> .

volist>

volist還有乙個別名iterate,用法和volist是一樣。

從2.1版開始允許使用函式設定資料集,如:

thinkphp中的volist標籤

屬性 name 必須 要輸出的資料模板變數 id 必須 迴圈變數 offset 可選 要輸出資料的offset length 可選 輸出資料的長度 key 可選 迴圈的key變數,預設值為i mod 可選 對key值取模,預設為2 empty 可選 如果資料為空顯示的字串 通常模型的select方法...

thinkphp中的volist標籤

屬性 name 必須 要輸出的資料模板變數 id 必須 迴圈變數 offset 可選 要輸出資料的offset length 可選 輸出資料的長度 key 可選 迴圈的key變數,預設值為i mod 可選 對key值取模,預設為2 empty 可選 如果資料為空顯示的字串 通常模型的select方法...

thinkphp中的volist標籤

屬性 name 必須 要輸出的資料模板變數 id 必須 迴圈變數 offset 可選 要輸出資料的offset length 可選 輸出資料的長度 key 可選 迴圈的key變數,預設值為i mod 可選 對key值取模,預設為2 empty 可選 如果資料為空顯示的字串 通常模型的select方法...