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