溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

DEDE模板中使用if進(jìn)行多分支判斷的方法

發(fā)布時(shí)間:2020-08-17 16:03:44 來源:億速云 閱讀:158 作者:小新 欄目:建站服務(wù)器

這篇文章主要介紹了DEDE模板中使用if進(jìn)行多分支判斷的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

DEDE模板中如何使用if進(jìn)行多分支判斷?

我們在用dede做模板的時(shí)候,經(jīng)常會遇到需要根據(jù)某個(gè)條件判斷來分別顯示不同的內(nèi)容的情況,也就是dede模板中的多分支判斷。比如典型的,我們需要根據(jù)風(fēng)險(xiǎn)管理數(shù)據(jù)庫表中的風(fēng)險(xiǎn)等級字段risklevel的取值的不同分別顯示不同的風(fēng)險(xiǎn)提示圖標(biāo)。如圖1 所示。

DEDE模板中使用if進(jìn)行多分支判斷的方法

紅色框中的投資項(xiàng)目名稱前面的圖標(biāo)表示了不同的風(fēng)險(xiǎn)等級,一共有AA,D,E,HR 4個(gè)風(fēng)險(xiǎn)等級。在數(shù)據(jù)庫表中保存的分別是這4個(gè)等級取值中的一個(gè),如圖2 所示。

DEDE模板中使用if進(jìn)行多分支判斷的方法

我們的風(fēng)險(xiǎn)等級字段risklevel 是可以在列表模板中獲取到其取值的,因?yàn)槲覀冊趦?nèi)容模型中已經(jīng)設(shè)置了該字段允許被在列表模板中取值。

如圖 3 所示。

DEDE模板中使用if進(jìn)行多分支判斷的方法

這樣,我們在列表模板中就很容易通過

{dede:listpagesize='10'}
    [field:risklevel/]
 {/dede:list}

來得到風(fēng)險(xiǎn)等級的取值。

但是我們不同風(fēng)險(xiǎn)等級對應(yīng)的提示圖標(biāo)卻位于圖片目錄下,而且這些提示圖片文件的名稱沒有任何規(guī)律,那么我們就需要通過if判斷來根據(jù)風(fēng)險(xiǎn)等級的不同取值來設(shè)置不同的提示圖片路徑。

那么應(yīng)該如何來判斷呢?

需要使用到[field:array]標(biāo)簽,那么我們該如何來判斷呢?

我們首先要向大家介紹一個(gè)非常有用的dede標(biāo)簽:[field:array] 標(biāo)簽,該標(biāo)簽是標(biāo)簽 {dede:field name='array' /}的簡寫形式,該標(biāo)簽用在列表標(biāo)簽內(nèi)部,例如:{dede:list}標(biāo)簽, {dede: arclist}等標(biāo)簽內(nèi)部。

我們知道,在列表標(biāo)簽內(nèi)部我們可以通過[field:字段名/]的形式得到某個(gè)數(shù)據(jù)庫表字段的取值,那么當(dāng)我們想要進(jìn)行分支判斷的時(shí)候,例如:根據(jù)風(fēng)險(xiǎn)等級取值的不同得到不同的圖標(biāo)路徑,這個(gè)時(shí)候我們就必須借助[field:array] 標(biāo)簽了,[field:array] 標(biāo)簽標(biāo)簽代表查詢得到的數(shù)據(jù)庫表中的一條記錄,具體的判斷代碼如下:

[field:array runphp='yes']          
                    if(@me['risklevel']=="HR")@me="HR.png";
                        else if(@me['risklevel']=="D")@me="D.png";
                                  else if(@me['risklevel']=="AA")@me="AA.png";
                    [/field:array]              
                    {/dede:list}

其意思就是說如果查詢得到的風(fēng)險(xiǎn)等級字段的取值是HR,那么將輸出HR.png, 如果查詢得到的風(fēng)險(xiǎn)等級字段的取值是D,那么將輸出D.png,如果查詢得到的風(fēng)險(xiǎn)等級字段的取值是AA,那么將輸出AA.png, 這里的HR.png,只是一個(gè)字符串,代表圖片文件所在的位置,你可以設(shè)置成任意的圖片路徑,上面的代碼是一種分支條件輸出語句,@me代表的就是輸出變量,剛進(jìn)入標(biāo)簽field:array時(shí),@me代表數(shù)據(jù)庫的一條記錄,其數(shù)據(jù)類型是數(shù)組,我們根據(jù)其中risklevle的取值來判斷,從而將@me設(shè)置成不同的值,當(dāng)退出標(biāo)簽field:array時(shí),@me的值就會被顯示在原位置。

這個(gè)標(biāo)簽的功能非常強(qiáng)大,它適合于我們最常見的場景,當(dāng)我們在模板頁面中需要根據(jù)特定的條件來進(jìn)行if分支判斷來顯示不同的內(nèi)容時(shí),采用field:array標(biāo)簽將給我們帶來極大的方便。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享DEDE模板中使用if進(jìn)行多分支判斷的方法內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI