Измените область действия правил проверки свойства атрибута клиента с глобального на веб-сайт
Как я могу изменить область действия свойства атрибута клиента "validation_rules". Этот атрибут существует в атрибуте customer_eav_attribute (содержащем min_text_length и max_text_length).
Добавление его на сайт customer_eav_attribute_website не работает. Сфера применения по-прежнему "глобальная". Где я должен настроить?
$installer->getConnection()->addColumn($installer->getTable('customer/eav_attribute_website'), 'validate_rules',
'text DEFAULT NULL');
Есть идеи?
1 answers
В Magento есть только одна область для клиентов. Клиент либо уникален для каждого веб-сайта, либо глобален. Из-за этого для каждого клиента существует только 1 значение для каждого атрибута. Это отличается от продуктов, которые могут иметь значения уровня магазина и веб-сайта.
Я предлагаю вам либо изменить область действия вашего клиента на веб-сайт, если это то, что вам действительно нужно, либо, что более вероятно, придумать другой способ хранения данных, которые вы пытаетесь сохранить на клиенте сущность.
Вы можете подумать о создании новой модели и структурировать ее так же, как статическую блочную модель. Эта модель имеет идентификатор, который может быть одинаковым в разных экземплярах. Каждый экземпляр привязан к одному или нескольким представлениям хранилища. Затем вы можете сохранить значение "идентификатор" для своей модели в новом клиенте "validation_rule_identifier", который заменяет атрибут "validation_rules", который у вас есть сейчас. Когда вам нужна логика, которая ранее использовала атрибут validation_rules, вы должны загрузить новую модель и выполнить фильтрацию по текущему магазину и значению идентификатора validation_rule_identifier текущего клиента. Это должно позволить вам выполнить то, что вы надеетесь сделать прямо сейчас.
К сожалению, решение не проще, хотя большая часть логики уже встроена в классы статических блочных моделей.