1

私はマジェントが初めてで、その拡張機能を少し書こうとしています(マジェント1.7)。

customer->edit でタブを作成しました。複数選択を出力します。問題はありません。問題は、保存する前に複数選択オプションをキャッチしてデータベースのカスタム テーブルに保存するためにオブザーバー ファイルを取得できないことです。

いくつかのコード スニペットがあります: app/code/local/Gone/Brands/etc/config.xml

    <adminhtml>
    <layout>
        <updates>
            <customertab>
                <file>customertab.xml</file>
            </customertab>
        </updates>
    </layout>
    <events>
        <customer_save_after>
            <observers>
                <brands_hide_manufacturers>
                    <type>model</type>
                    <class>Gone_Brands_Model_Observer</class>
                    <method>saveHideManufacturers</method>
                </brands_hide_manufacturers>
            </observers>
        </customer_save_after>
    </events>
</adminhtml>

アプリ/コード/ローカル/ゴーン/ブランド/モデル/Observer.php

<?php
class Gone_Brands_Model_Observer
{
 public function _construct()
 {
    echo "ssssssssssssssssssssssssssss";
    echo "<script>alert('aaa');</script>";
 }

 public function saveHideManufacturers() {
    echo "ssssssssssssssssssssssssssss";
    echo "<script>alert('bbbb');</script>";
 }
}

顧客 - >編集 - >カスタムフィールドで作成したタブからフォームをキャッチする方法が他にもあるかもしれませんか?

ありがとうございました。

==================================================================================

最後に、これに費やした時間は 4 時間です。多分これは他の誰かに役立ちます。

config.xml

customer_save_after -> change to -> adminhtml_customer_save_after

今すぐ動作します。

4

3 に答える 3

3

最後に、これに費やした時間は 4 時間です。多分これは他の誰かに役立ちます。

config.xml

customer_save_after -> change to -> adminhtml_customer_save_after

今すぐ動作します。

于 2013-02-26T07:06:33.100 に答える
0

イベント定義は「global」タグ内にある必要があります。また、オブザーバー クラスに _construct メソッドは必要ありません

<global>
    <events>
        <customer_save_after>
            <observers>
                <brands_hide_manufacturers>
                   <type>singleton</type>
                   <class>Gone_Brands_Model_Observer</class>
                   <method>saveHideManufacturers</method>
                </brands_hide_manufacturers>
            </observers>
        </customer_save_after>
    </events>
</global>
于 2013-02-25T14:37:31.360 に答える
0

Magento では、完全なクラス名を持つクラスにリンクしません。フレームワークを使用する必要があります。

交換 :

<class>Gone_Brands_Model_Observer</class>

に :

<class>gonebrands/observer</class>

「gonebrands」(または何でも) は、config.xml で MODEL レイヤーを定義する XML ノードを指します。

于 2013-02-25T14:23:22.463 に答える