Структура очень проста. Есть название атрибута, у которого есть собственный id. Узнать его можно в таблице eav_attribute. Соответственно смотрим на заголовки полей и ориентируемся. Поле entity_type_id указывает к чему относится атрибут, например к customer'ам = 1 или products = 4 (Тут могу ошибится). При создании атрибута указывается его тип: int, text, varchar, datatime и другие.. его тоже необходимо знать.
Затем, зная всю ту информацию об искомом атрибуте, которая была описана выше, начинаем сам поиск. Если entity_type_id=1, то имена таблиц которые будут хранить значения атрибутов, будут начинаться с customer_entity (для 4 это catalog_category_entity). Далее зная тип атрибута находишь таблицу название которой содержит соответсвующий тип. А затем зная attribut_id находиш строку и смотриш значение. Так же следует учитывать, что это EAV, и один на один attribute id будет несколько значений. Там нужно ориентироваться по назвнием полей.
Все это (это запись и все остальные) я пишу для себя и языком понятным только мне для того, что бы в первую очередь, быстро вспомнить, если что-то забыл. А также для того, чтобы лучше запомнить новую информацию.
Узнал о новом способе поиска ошибок, неполадок (раньше не приходилось пользоваться и не хотелось сильно углублятся в дебри классов). Каждая модель генерирует MySQL запрос в базу данных. Например в модели order'ов, есть методы getSelect() и assemble(), которые вернут полный Select запрос. Потом копируя в phpmyadmin пробуешь его с разными значениями. Вычисляешь каких значений не хватает, или наооборот какие значения лишние и делаешь соответсвующий вывод.
Как я писал ранее, я уже все забыл про то, как magenta взаимодействует с БД. И поэтому нужно все заново изучить, потому что описанные выше методы не у всех моледей есть (а может я спешил и не там попробовал). В общем все нужно изучить заново.
Затем, зная всю ту информацию об искомом атрибуте, которая была описана выше, начинаем сам поиск. Если entity_type_id=1, то имена таблиц которые будут хранить значения атрибутов, будут начинаться с customer_entity (для 4 это catalog_category_entity). Далее зная тип атрибута находишь таблицу название которой содержит соответсвующий тип. А затем зная attribut_id находиш строку и смотриш значение. Так же следует учитывать, что это EAV, и один на один attribute id будет несколько значений. Там нужно ориентироваться по назвнием полей.
Все это (это запись и все остальные) я пишу для себя и языком понятным только мне для того, что бы в первую очередь, быстро вспомнить, если что-то забыл. А также для того, чтобы лучше запомнить новую информацию.
Узнал о новом способе поиска ошибок, неполадок (раньше не приходилось пользоваться и не хотелось сильно углублятся в дебри классов). Каждая модель генерирует MySQL запрос в базу данных. Например в модели order'ов, есть методы getSelect() и assemble(), которые вернут полный Select запрос. Потом копируя в phpmyadmin пробуешь его с разными значениями. Вычисляешь каких значений не хватает, или наооборот какие значения лишние и делаешь соответсвующий вывод.
Как я писал ранее, я уже все забыл про то, как magenta взаимодействует с БД. И поэтому нужно все заново изучить, потому что описанные выше методы не у всех моледей есть (а может я спешил и не там попробовал). В общем все нужно изучить заново.
Комментариев нет:
Отправить комментарий