《國(guó)產(chǎn)PHP框架之ThinkPHP模塊開(kāi)發(fā)系列十四,階段性總結(jié)(二)詳解無(wú)限級(jí)分類(lèi)的顯示和刪除》要點(diǎn):
本文介紹了國(guó)產(chǎn)PHP框架之ThinkPHP模塊開(kāi)發(fā)系列十四,階段性總結(jié)(二)詳解無(wú)限級(jí)分類(lèi)的顯示和刪除,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
相關(guān)主題:thinkphp教程
無(wú)限級(jí)分類(lèi)作為一個(gè)新手來(lái)說(shuō)比擬難理解,所以為了讓大家有一個(gè)更加系統(tǒng)的理解,本節(jié)全面一次性的詳細(xì)講解一下無(wú)限級(jí)分類(lèi).
無(wú)限級(jí)分類(lèi)
PHP框架之ThinkPHP模塊開(kāi)發(fā)系列六,無(wú)限級(jí)分類(lèi)1
PHP框架之ThinkPHP模塊開(kāi)發(fā)系列七,無(wú)限級(jí)分類(lèi)2
1、在添加子欄目的時(shí)候要將父級(jí)欄目的id作為暗藏字段傳遞到數(shù)據(jù)庫(kù),并將該id保存到數(shù)據(jù)庫(kù)的catepid中
2、在公共目錄下構(gòu)建function.php函數(shù),用來(lái)接收從數(shù)據(jù)庫(kù)中傳遞過(guò)來(lái)的catepid的值,斷定catepid的值是否為0,如果為0,則返回“頂級(jí)欄目”,不為0的話,根據(jù)傳過(guò)來(lái)的catepid的值,查找其父級(jí)欄目數(shù)據(jù),并把查找出來(lái)的父級(jí)欄目的名稱(chēng)(catename)返回出去.這樣在html頁(yè)面顯示的時(shí)候就可以根據(jù)catepid顯示出父級(jí)(所屬)欄目的名稱(chēng).
公共函數(shù)
在html中調(diào)用公共函數(shù)function的時(shí)候,我們直接在標(biāo)簽中用“|函數(shù)辦法名”即可.
3、遞歸辦法
遞歸列表
遞歸辦法是我們制作無(wú)限級(jí)分類(lèi)的重要辦法,無(wú)論是在欄目列表還是在面包屑導(dǎo)航上都用到此辦法.
在制作欄目列表時(shí)候,我們先從catepid為0開(kāi)始查找,并將符合條件的數(shù)據(jù)(我們暫且稱(chēng)其為a)存入到靜態(tài)數(shù)組中,接著我們把數(shù)據(jù)a的id作為下一次查找的條件,如果存在數(shù)據(jù)b的catepid與a的id相等,則將b也存入靜態(tài)數(shù)組中,然后繼續(xù)以b的id作為條件查找下一組數(shù)據(jù),如果不存在b則停止查找,并把靜態(tài)數(shù)組返回出去供控制器辦法調(diào)用.
PHP框架之ThinkPHP模塊開(kāi)發(fā)系列八,無(wú)限級(jí)分類(lèi)的刪除
遞歸刪除
1、遞歸辦法
與無(wú)限級(jí)分類(lèi)的顯示相似,刪除的時(shí)候,需要根據(jù)傳入的id的值作為第一次查找的條件,如果數(shù)據(jù)a的catepid與傳入的id值相等,則將a的id值存入靜態(tài)數(shù)組中.然后以a的id作為下一次查找的條件,如果存在數(shù)據(jù)b的catepid與a的id相同,則將b的id值也存入靜態(tài)數(shù)組中,然后繼續(xù)以b的id作為條件查找下一組數(shù)據(jù),如果不存在b則停止查找,并把靜態(tài)數(shù)組中保留的id值返回出去.
2、model層刪除相符條件的子分類(lèi)
充足利用thinkphp中的鉤子函數(shù)_before_delete.
我么利用數(shù)組分割辦法implode,將遞歸辦法中的靜態(tài)數(shù)組中的id以“,”進(jìn)行分割.要注意的是在model的刪除辦法,必須使用原生態(tài)的php語(yǔ)句.Execute(‘DELETE FROM ***’)
PHP框架——ThinkPHP各模塊開(kāi)發(fā)系列九,面包屑導(dǎo)航
此辦法使用的仍然是遞歸思路.只不過(guò)使用的是while辦法,從id開(kāi)始查起或者說(shuō)從子欄目開(kāi)始往上查找父級(jí)欄目.首先是根據(jù)傳入的id值查找本條數(shù)據(jù)a,存入到靜態(tài)數(shù)組中.接著將數(shù)據(jù)a的catepid作為下一次查找的條件,如果a的catepid不為0,則進(jìn)行查找符合條件的數(shù)據(jù)b,如果a的catepid為0,則說(shuō)明查找到了頂級(jí)欄目,停止查找.
如果您仍有不明白,請(qǐng)留言.我們會(huì)第一光陰恢復(fù)!
喜歡的話,可以存眷我們.感謝!
本文由頭條號(hào)“性命一路前行”原創(chuàng),請(qǐng)勿轉(zhuǎn)載.
《國(guó)產(chǎn)PHP框架之ThinkPHP模塊開(kāi)發(fā)系列十四,階段性總結(jié)(二)詳解無(wú)限級(jí)分類(lèi)的顯示和刪除》是否對(duì)您有啟發(fā),歡迎查看更多與《國(guó)產(chǎn)PHP框架之ThinkPHP模塊開(kāi)發(fā)系列十四,階段性總結(jié)(二)詳解無(wú)限級(jí)分類(lèi)的顯示和刪除》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9366.html