Переопределенные объекты модели не выполняются - PullRequest
0 голосов
/ 14 декабря 2011

Я пытаюсь переопределить объекты модели Клиента для Адреса и Клиента.Он работает в моей среде разработки, но я не могу заставить его работать в производстве.Они оба используют Magento 1.6.0.0.

Есть две области, в которых я могу ошибаться:

  1. Возможно, я не загрузил все необходимые файлы, но не знаю, что пропустил.Я пробовал FTP'ить всю директорию модуля, поэтому, если есть дополнительные файлы, они должны быть из другой части кода.
  2. Отсутствуют данные из / неверные данные в базе данных.Это кажется более вероятным, но я не уверен, где искать (я установил данные напрямую через PhpMyAdmin, а не использовал для этого установочный файл Magento - это собственный проект Magento, поэтому не нужно воспроизводить / копировать это где-либо еще вбудущее.)

В любом случае, вот что у меня есть, на случай, если я делаю что-то не так на уровне кода.

Переопределяет

class Zac_Attack_Model_Entity_Address extends Mage_Customer_Model_Entity_Address
{
    protected function _afterSave( Varien_Object $address )
    {
        // this method never gets called.
    }
}

class Zac_Attack_Model_Entity_Customer extends Mage_Customer_Model_Entity_Customer
{
    protected function _saveAddresses( Varien_Object $address )
    {
        // this method never gets called.
    }
}

config.xml

<models>
    <customer_entity>
        <rewrite>
            <address>Zac_Attack_Model_Entity_Address</address>
            <customer>Zac_Attack_Model_Entity_Customer</customer>
        </rewrite>
    </customer_entity>
</models>

Переопределение заключается в том, что мы можем добавить третий тип основного адреса к адресам клиентов.Атрибут правильно настроен в базе данных для нового адреса - если я вручную установлю адрес в качестве адреса «default_custom», он будет отображаться в деталях клиента как во внешнем, так и во внутреннем интерфейсе, но без объекта модели система выиграла ».введите адрес.Если я не могу найти то, что мне не хватает, я всегда могу переместить логику в различные функции «Сохранить», но я бы предпочел придерживаться подхода, уже принятого в коде ядра Magento.

Любые идеи, чтоЯ тут не так делаю?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2011

Разве ваши config.xml не должны быть такими:

<models>
    <customer>
        <rewrite>
            <entity_address>Zac_Attack_Model_Entity_Address</entity_address>
            <entity_customer>Zac_Attack_Model_Entity_Customer</entity_customer>
        </rewrite>
    </customer>
</models>
0 голосов
/ 14 декабря 2011

Вы добавили файл конфигурации в app/etc/modules/*?

Содержит ли этот файл конфигурации узел <enabled/> со значением true?

Содержит ли этот файл конфигурации имя правильного пула кодов?(сообщество или местный).

Отображается ли имя вашего модуля в списке расширенных - отключить вывод модулей?Вы пытались использовать Module List Module для отладки, почему он не отображается?

Вы пробовали написать код, который создает для вас экземпляр модели и проверяет, что имя вашего классапривыкает

$model = Mage::getMode('foo/bar');
var_dump(get_class($model));

Вы уверены, что метод, который вы переопределяете, не вызывается?

Есть ли другой модуль, который переписан в том же классе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...