ECCUBE3でカテゴリに補足情報を追加する

EC-CUBE 3.0.16
MySQL 5.6.19
PHP 5.6.36

例として、あるカテゴリに「関連A」(assoc_A)という補足情報を追加する場合。

1. テーブルへのカラム追加
dtb_categoryテーブルへ”assoc_A”という名前のカラムをtinyintタイプで追加。また、NULLを許可にする。

2. エンティティファイルに、セッターゲッター追加
/src/Eccube/Entity/Category.php

以下のように追記。

 

3. データベース定義ファイルへカラム追加
/src/Eccube/Resource/doctrine/Eccube.Entity.Category.dcm.yml

fields一覧にassoc_Aの項目を追加。データベースとエンティティクラスを接続するのがdcm.yml(Doctrineマッピングファイル)。これにより、Categoryエンティティのassoc_Aとdtb_categoryのassoc_Aカラムが接続される。

※データ型がint,smallint,tinyintでも、Formでcheckboxタイプを使う予定のため( 論理型(値が1か0のタイプ)と認識されるので)ブーリアンタイプにしておく。

ECCUBE3で使用できるtype一覧は過去記事参照

 

4. フォーム定義ファイルへの項目追加
/src/Eccube/Form/Type/Admin/CategoryType.php

下記のように、管理画面の商品登録フォームへ定義を追加。

 

5. 管理画面(カテゴリ登録画面)へフォーム表示
/app/template/admin/Product/category.twig

フォームを表示したい場所に下記のように記述。

 

6. 商品詳細ページへの表示
/app/template/default/Product/detail.twig

関連付けした情報を使って詳細ページでごにょごにょするには、多少の工夫が必要。これについては別途書く予定。

とりあえず以上。

 

参考URL)

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*