無制限のサブカテゴリPHPおよびMySQL LIリストオープンカートカテゴリ

StackOverflow https://stackoverflow.com/questions/8325750

  •  26-10-2019
  •  | 
  •  

質問

次の表があります categorycategory_description php mysqlで。私の質問は、以下の情報をどのようにして、無制限の量のサブカテゴリを作成しますか ul li 構造。ここでさまざまな例を見てきましたが、この質問を読んでくれてありがとうございました。あなたのお返事をお待ちしてます

Column         Type         Null    Default
category_id    int(11)      No       
image          varchar(255) Yes     NULL     
parent_id      int(11)      No      0    
top            tinyint(1)   No       
column         int(3)       No       
sort_order     int(3)       No      0    
status         tinyint(1)   No       
date_added     datetime     No      0000-00-00 00:00:00      
date_modified  datetime     No      0000-00-00 00:00:00      

説明はこの表に保存されています

Column            Type          Null
category_id       int(11)       No       
language_id       int(11)       No       
name              varchar(255)  No       
description       text          No       
meta_description  varchar(255)  No       
meta_keyword      varchar(255)  No       
役に立ちましたか?

解決

OpenCartには

$this->model_catalog_category->getCategory()

メソッド、およびカテゴリIDをパラメーターとして渡します。

$category = this->model_catalog_category->getCategory(5);

また、適切な説明を処理するため、直接アクセスする必要はありません。 @till Helge Helwigがすでに指摘しているように、すべてのサブカテゴリでこれらのツリーを構築する場合は、再帰関数を使用する必要があります。この例を見るのに適した場所は、実際のカテゴリモジュールコードにあります。ファイルの下部までスクロールします catalog/controller/module/category.php そして、あなたはそれのためにHTMLを構築する再帰機能を見るでしょう

他のヒント

あなたはすでに列を持っています parent_id. 。それを使用して、カテゴリ間の関係を表します。カテゴリがルートレベルにある場合、その列をに設定します NULL.

別のアプローチは、サブカテゴリにカテゴリをマップする3番目のテーブルです。これにより、上から下から下から歩くことができます。使用するアプローチのアプリケーションに依存します。

この階層を処理するには、いくつかの再帰関数を記述し、カテゴリの階層を適切に処理できるPHPで適切な表現を見つける必要があります。

何らかのパン粉を印刷するための単純な再帰機能は、このように見えるでしょう(この例では、何らかのORMがあると思います):

function findWayToTop($category, $breadcrumbs = array()) {
    $breadcrumbs[] = $this;
    $parent = $category->getParent();
    if ($parent != null) {
        return findWayToTop($parent, $breadcrumbs);
    } else {
        return $breadcrumbs;
    }
}

ORMを使用しない場合、最も簡単な方法は、データベースからすべてのカテゴリを取得し、IDがキーである配列にそれらを保存することです。次に、上記のコードの配列コールを交換でき、同様に機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top