Вопросы с тегом «collection»

Вопросы, связанные с коллекциями Magento

1
В чем разница между `joinField` и` joinTable` в коллекциях?
В файле app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.phpесть функция с именем joinFieldи другая joinTable. Если поля на самом деле являются столбцами в плоских таблицах, что означает их объединение? В каких обстоятельствах я должен использовать joinTableвместо этого? Могут ли они оба быть взаимозаменяемыми?

2
Magento 2: другой способ получить поле коллекции
У меня есть этот вспомогательный класс в Magento 2: class Data extends \Magento\Framework\App\Helper\AbstractHelper { protected $_countryFactory; public function __construct( \Magento\Directory\Model\CountryFactory $countryFactory ) { $this->_countryFactory = $countryFactory; } public function getCountryIsoCode($country = 'US') { $country = $this->_countryFactory->create()->getCollection(); $country->addFieldToFilter('country_id', array('eq' => country)); $countryCode = $country->getFirstItem()->getIso3Code()); $countryCode2 = $country->getFirstItem()->getData('iso3_code')); // $countryCode => null …

2
Что такое эквивалентность Magento ORM для «атрибута SELECT DISTINCT ИЗ продуктов»?
Мне нужно получить список всех значений, которые используются для определенного атрибута продукта, в (псевдо) SQL: SELECT DISTINCT attribute FROM products; Как бы я использовал Magento ORM для создания эквивалентного запроса? Я пробовал эту distinct()функцию, но она не работает так, как я ожидал: // Returns an array of NULL with a …

2
addAttributeToSelect не работает с core / resource_iterator?
public function run() { $products = Mage::getModel('catalog/product') ->getCollection() ->addFinalPrice() ->addAttributeToSelect('name') Mage::getSingleton('core/resource_iterator') ->walk($products->getSelect()->limit(10), array(array($this, 'getLine'))); } public function getLine($args) { var_dump($args['row']); } В моем getLine()методе я получаю нет, nameно addFinalPrice()работает: array(16) { ["entity_id"]=> string(2) "61" ["entity_type_id"]=> string(1) "4" ["attribute_set_id"]=> string(2) "10" ["type_id"]=> string(6) "simple" ["sku"]=> string(15) "50-F01010001-03" ["has_options"]=> string(1) "0" ["required_options"]=> …

1
Сетка клиента Magento _prepareCollection () не работает
Я переопределил метод _prepareCollection () Mage_Adminhtml_Block_Customer_Grid и добавил следующие строки ->addAttributeToSelect('cus_city') ->addAttributeToSelect('cus_country') ->addAttributeToSelect('cus_state') чтобы: protected function _prepareCollection() { $collection = Mage::getResourceModel('customer/customer_collection') ->addNameToSelect() ->addAttributeToSelect('email') ->addAttributeToSelect('created_at') ->addAttributeToSelect('group_id') ->addAttributeToSelect('cus_city') // added ->addAttributeToSelect('cus_country') // added ->addAttributeToSelect('cus_state') // added ->joinAttribute('billing_postcode', 'customer_address/postcode', 'default_billing', null, 'left') ->joinAttribute('billing_city', 'customer_address/city', 'default_billing', null, 'left') ->joinAttribute('billing_telephone', 'customer_address/telephone', 'default_billing', null, 'left') ->joinAttribute('billing_region', …

2
Как получить коллекцию заказов, которые можно отправить?
Мне нужны заказы, которые еще не отправлены или частично отправлены. Я использую код ниже, чтобы получить заказы, которые могут быть отправлены. foreach ($orderIds as $orderId) { $order = Mage::getModel('sales/order')->load($orderId); if ($order->canShip()) { echo "Shipping Pending"; } } Но я не хочу использовать foreach. Мне нужно что-то вроде ниже. Mage::getModel('sales/order')->getCollection() ->addFieldToFilter('status','can_ship');

2
Коллекции - фильтрация нескольких значений атрибутов множественного выбора
Это не опечатка. Я знаю, что мне нужно использовать 'finset' для фильтрации моих атрибутов множественного выбора; Тем не менее, я пытаюсь отфильтровать несколько значений одновременно и получаю: Incorrect parameter count in the call to native function 'FIND_IN_SET, Вот пример кода: foreach ($options as $option) { // $option[0] contains an attribute …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.