Класс getModel с Magento извлекает данные на основе поля mysql, которое не является первичным ключом

#php #sql #magento

#php #sql #магенто

Вопрос:

Я хотел бы изменить этот фрагмент для извлечения некоторых данных из таблицы, и вместо запуска первичного ключа (который выглядит как поведение функции load () по умолчанию), я хотел бы запустить другое поле в моем запросе … Как я могу это сделать?

 $mytable = Mage::getModel('mytable/mytable')->load($mytable_id)->getData();
  

спасибо

Ответ №1:

Вы можете использовать коллекцию:

 $mytable = Mage::getModel('mytable/mytable')->getCollection()->addFieldToFilter('your_attribute_code', 'your_filter_value'); // here you'll get a collection
  

В противном случае:

 $mytable = Mage::getModel('mytable/mytable')->load('filter_value', 'attribute_code');
  

Комментарии:

1. Спасибо, но знаете ли вы, как использовать атрибут sql: «LIKE» с таким фрагментом (первым, который вы мне дали)?

2. Вот пример с ПОДОБНЫМ: $mytable = Mage::getModel(‘mytable/mytable’)->getCollection()->addFieldToFilter(‘name’, array(‘like’ => ‘abc%’));

Ответ №2:

Если вы используете -> getCollection(), возможно, вам потребуется использовать -> getFirstItem(), чтобы получить только первый элемент.

 $mytable = Mage::getModel('mytable/mytable')->getCollection()->addFieldToFilter('your_attribute_code', 'your_filter_value')->getFirstItem();