EC-CUBE3の会員情報の項目を追加する方法です。
EC-CUBE3のバージョンが3.0.13以降のやり方です。
プラグインのひな形を作成
まず、コンソールでプラグインのひな形を作成します。
php app/console plugin:develop generate
プラグイン名は「会員プロフィール」、プラグインコードは「Profile」として下さい。
以下の4つのフックポイントも設定して下さい。
admin.customer.edit.index.initialize admin.customer.edit.index.complete front.mypage.change.index.initialize front.mypage.change.index.complete
dcm.ymlファイル作成
次にdcm.ymlファイルを用意します。
profile_idとnickname、customer_idのシンプルなテーブルです。
manyToOneでdtb_customerテーブルとリレーションさせています。
ORMのパスを追加
config.ymlファイルにormのパスを追加します。
エンティティクラス作成
コンソールでエンティティクラスを作成します。
php app/console plugin:develop entity
リポジトリを追加
先程エンティティクラスを自動生成した際にリポジトリクラスも生成されているのでリポジトリクラスを登録します。
プラグインマネージャーを編集
プラグインを有効化した時にplg_profileテーブルを作成するように以下のように編集します。
event.ymlファイルを編集
フロント画面と管理画面の処理を共通化するため、コンソールでプラグインのひな形を作成したときにできたevent.ymlファイルを以下のように編集します。
フックポイントを利用してフォームを拡張
フックポイントを利用してフロント画面のマイページの会員情報編集、管理画面の会員登録・編集にニックネームという新しい項目を追加します。
これで会員情報に新しい項目を追加することができます。
もっと項目を追加したいときは、Plugin.Profile.Entity.Profile.dcm.ymlにフィールドを追加してマイグレーションして下さい。