質問 > フロント機能 > コアの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
|
sleepsheep |
投稿日時: 2022/12/15 13:36
対応状況: −−−
|
新米 登録日: 2022/9/2 居住地: 投稿: 9 |
Re: コアのEntityに定義されているメソッドの処理を変更するには 回答いただきありがとうございます。
やはりTraitでEntityを拡張するのはできないのですね。 クラウド版ec-cubeなので、本体をカスタマイズすることはできません。 setFromCustomer()を呼び出している箇所の後に、追加された項目を個別に登録するように処理を追加しました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |