ecshop模板中foreach使用規(guī)則,他有以下幾個參數(shù) from,item name iteration index,下面我們一起來看它的用法.
1:foreach使用規(guī)則,他有以下幾個參數(shù) from,item name iteration index
2:如何使用foreach循環(huán)
如果php要傳遞一個數(shù)組(如:$array)給ecshop的smarty模板,那么我們將通過from=$array 來接受,寫法代碼如下:
{foreach from = $array item = item}
3:ecshop中smarty的下標(biāo)如何表示,請看下面的例子:
{foreach from = $array item = item name=name}
{$smarty.foreach.name.iteration}
{/foreach}
這里的iteration就是從1開始的下標(biāo),如果要從0開始的下標(biāo),應(yīng)該使用{$smarty.foreach.name.index}.
4:如何判斷是否是foreach循環(huán)的開始和結(jié)束,最后一個元素,代碼如下:
{if $smarty.foreach.last}表示循環(huán)的最后一個元素,{if $smarty.freach.first}表示循環(huán)的開始.
5:如何使用雙重循環(huán),舉例如下:
{foreach from = $test item =item}
{foreach from=$item.children item=child}
{$child.name}
{/foreach}
{/foreach}
上面五條是官方找到的,下面我通過幾天的應(yīng)用,總結(jié)出了ec模版中foreach的常見用法,假如后臺:$smarty->assign('test',$test);代碼如下:
{foreach from=$test item=list name=listone}
<p>{$list}</p>
{/foreach}
from 表示assign過來對應(yīng)的第一個參數(shù)'test',item 就是下面要循環(huán)的變量,name是用于訪問foreach屬性的foreach循環(huán)的名稱,key當(dāng)前鍵名的變量名.
但是我們經(jīng)常會看到這樣的寫法:
<!--{foreach from=$test item=list name=listone key=key}-->
<p>{$list}</p>
<!--{/foreach}-->
其實這兩種都是一樣的,只是加了 <!-- --> 之后,你有沒有發(fā)現(xiàn)用dreamwearver打開這些語句會以注釋一樣的灰色顯示,這樣一眼能看出標(biāo)簽,還有就是調(diào)試模版時候,用瀏覽器打開,加了<!-- -->會注釋掉if foreach等這些,而不影響模版原來的樣子,更能方便調(diào)試模版.
多重循環(huán),兩次循環(huán),代碼如下:
<!--{foreach from=$categories item=list}-->
<!--{foreach from=$list.cat item=cat}-->
<a href="{$cat.url}">{$cat.name}</a>
//
<!--{/foreach}-->
<!--{/foreach}-->
只循環(huán)出前兩條數(shù)據(jù),代碼如下:
<!--{foreach from=$categories item=list name=catlist}-->
<!--{if $smarty.foreach.catlist.iteration<2}-->
<a href="{$list.url}">{$list.name}</a>
<!--{/if}-->
<!--{/foreach}-->
foreachelse,代碼如下:
<!--{foreach from=$categories item=list}--
<a href="{$list.url}">{$list.name}</a>
<!--{foreachelse}-->
<p>no data</p>
<!--{/foreach}-->
如果{foreach from=$categories item=list}一條數(shù)據(jù)也沒有,那么就執(zhí)行下面的{foreachelse}{/foreach}里面的內(nèi)容.
新聞熱點
疑難解答
圖片精選