バージョン選択

フォーラム

メニュー

オンライン状況

61 人のユーザが現在オンラインです。 (45 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 61
もっと...

サイト内検索

質問 > フロント機能 > コアのEntityに定義されているメソッドの処理を変更するには

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sleepsheep
投稿日時: 2022/12/8 16:21
対応状況: −−−
新米
登録日: 2022/9/2
居住地:
投稿: 9
コアのEntityに定義されているメソッドの処理を変更するには
[EC-CUBE] ec-cube.co(4.1.2)

コアのEntityに定義されているメソッドの処理を変更する方法についてご教授ください。

今回やりたいことを具体的に説明しますと、下記のEntityに定義されているメソッドで、登録する項目を増やしたいです。
(引数で渡された会員情報には項目が追加されており、その追加された項目をCustomerAddressにも登録したいです)
・対象Entity:src\Eccube\Entity\CustomerAddress.php
・対象メソッド:setFromCustomer()

src/Customize/Entity配下にCustomerAddress拡張用のtraitを作成し、そのtraitの中で同名のメソッドを定義しました。
ローカル環境で下記のページに書かている手順でproxyを作成しましたが、実行するとコアのメソッドが動作しているようです。
https://doc4.ec-cube.net/customize_entity

proxyの中ではtraitが先にuseされて、その後にコアのソースがついていたので、コアのメソッドのほうが有効になっているのだとは思います。
また、クラウド版を使用しているため、コアのソースを修正することはできません。

コアで定義済みのメソッドを再定義して有効にするには、どうすればよいでしょうか?
h_tanaka
投稿日時: 2022/12/8 16:58
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1638
Re: コアのEntityに定義されているメソッドの処理を変更するには
Entity で定義されている既存のメソッドを Trait で拡張することはできません。

Entity を直接カスタマイズするか、
本体カスタマイズを避けるなら、 setFromCustomer() を呼んでいる CustomerAddressType と ShippingMultipleItemType を FormExtension で拡張するしかないかと思います。
https://doc4.ec-cube.net/customize_formtype


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

sleepsheep
投稿日時: 2022/12/15 13:36
対応状況: −−−
新米
登録日: 2022/9/2
居住地:
投稿: 9
Re: コアのEntityに定義されているメソッドの処理を変更するには
回答いただきありがとうございます。

やはりTraitでEntityを拡張するのはできないのですね。

クラウド版ec-cubeなので、本体をカスタマイズすることはできません。
setFromCustomer()を呼び出している箇所の後に、追加された項目を個別に登録するように処理を追加しました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,724名です
総投稿数は109,953件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1286
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.