您好,登錄后才能下訂單哦!
這篇文章主要介紹了DEDE模板中使用if進行多分支判斷的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
DEDE模板中如何使用if進行多分支判斷?
我們在用dede做模板的時候,經常會遇到需要根據某個條件判斷來分別顯示不同的內容的情況,也就是dede模板中的多分支判斷。比如典型的,我們需要根據風險管理數據庫表中的風險等級字段risklevel的取值的不同分別顯示不同的風險提示圖標。如圖1 所示。
紅色框中的投資項目名稱前面的圖標表示了不同的風險等級,一共有AA,D,E,HR 4個風險等級。在數據庫表中保存的分別是這4個等級取值中的一個,如圖2 所示。
我們的風險等級字段risklevel 是可以在列表模板中獲取到其取值的,因為我們在內容模型中已經設置了該字段允許被在列表模板中取值。
如圖 3 所示。
這樣,我們在列表模板中就很容易通過
{dede:listpagesize='10'} [field:risklevel/] {/dede:list}
來得到風險等級的取值。
但是我們不同風險等級對應的提示圖標卻位于圖片目錄下,而且這些提示圖片文件的名稱沒有任何規律,那么我們就需要通過if判斷來根據風險等級的不同取值來設置不同的提示圖片路徑。
那么應該如何來判斷呢?
需要使用到[field:array]標簽,那么我們該如何來判斷呢?
我們首先要向大家介紹一個非常有用的dede標簽:[field:array] 標簽,該標簽是標簽 {dede:field name='array' /}的簡寫形式,該標簽用在列表標簽內部,例如:{dede:list}標簽, {dede: arclist}等標簽內部。
我們知道,在列表標簽內部我們可以通過[field:字段名/]的形式得到某個數據庫表字段的取值,那么當我們想要進行分支判斷的時候,例如:根據風險等級取值的不同得到不同的圖標路徑,這個時候我們就必須借助[field:array] 標簽了,[field:array] 標簽標簽代表查詢得到的數據庫表中的一條記錄,具體的判斷代碼如下:
[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}
其意思就是說如果查詢得到的風險等級字段的取值是HR,那么將輸出HR.png, 如果查詢得到的風險等級字段的取值是D,那么將輸出D.png,如果查詢得到的風險等級字段的取值是AA,那么將輸出AA.png, 這里的HR.png,只是一個字符串,代表圖片文件所在的位置,你可以設置成任意的圖片路徑,上面的代碼是一種分支條件輸出語句,@me代表的就是輸出變量,剛進入標簽field:array時,@me代表數據庫的一條記錄,其數據類型是數組,我們根據其中risklevle的取值來判斷,從而將@me設置成不同的值,當退出標簽field:array時,@me的值就會被顯示在原位置。
這個標簽的功能非常強大,它適合于我們最常見的場景,當我們在模板頁面中需要根據特定的條件來進行if分支判斷來顯示不同的內容時,采用field:array標簽將給我們帶來極大的方便。
感謝你能夠認真閱讀完這篇文章,希望小編分享DEDE模板中使用if進行多分支判斷的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。