2015-05-18 2 views
0

Пару дней назад я разместил question on StackExchange - Magento. Пожалуйста, прочитайте этот пост, поскольку этот вопрос связан.Это хорошая идея, чтобы изменить Magento Cutomer Model

С тех пор я хотел иметь этот новый атрибут клиента Unique. i.e никакой пользователь не должен иметь тот же атрибут, что и другой уже существующий пользователь. Я попытался сделать это самостоятельно:

Я изменил функцию _beforeSave() в /core/Mage/Customer/Model/Resource/Customer.php, добавив следующий код прямо перед логикой проверки электронной почты.

$result=Mage::getModel('customer/customer')->getCollection()->addFieldToFilter('mobile', $customer->getMobile())->load(); 

     if (is_object($result) && count($result) >= 1) 
     { 
      throw Mage::exception(
       'Mage_Customer', Mage::helper('customer')->__('There is already an account with this mobile number.'), 
       Mage_Customer_Model_Customer::EXCEPTION_MOBILE_EXISTS 
      ); 
     } 

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

Добавляет код к хорошей идее? Будет ли эта модификация оставаться неповрежденной, если я обновлю Magento с панели администратора?

Кроме того, предложите (если есть) альтернативное решение для проверки дублирующей записи в моем локальном модуле, а не для редактирования основного файла модели.

ответ

0

Здесь вы делаете изменения в файле ядра. Поэтому после обновления он не будет работать. Для этого рекомендуется использовать собственный модуль.

Вы можете ссылаться на следующую ссылку для создания базового модуля.

http://code.tutsplus.com/tutorials/magento-custom-module-development--cms-20643

+0

Это НЕ ссылка. Ответ в первом абзаце. – JasonMArcher

Смежные вопросы