Бих искал да филтрирам продуктова колекция, за да покажа само артикули, които са на склад. Мислех, че това ще бъде лесно, като се има предвид, че има атрибут, наречен „is_salable“, който е 1 (вярно), ако е на склад, 0 (фалшиво), ако не е. Но каквото и да правя, не става. Освен това изглежда, че спира изпълнението на заявката, преди да приключи.
Ето примерен код:
$this->_productCollection = Mage::getModel('catalog/product')->getCollection();
$this->_productCollection->addAttributeToSelect('*');
$this->_productCollection->addAttributeToFilter('my_attribute', true);
//So far, so good...filtering on 'my_attribute' works!
Mage::Log("select: " . $this->_productCollection->getSelect());
//Successfully outputs the SQL query
$this->_productCollection->addFieldToFilter('is_salable', '1');
Mage::Log("select: " . $this->_productCollection->getSelect());
//does NOT output any query...it's like it died trying
И така, какво правя грешно? Опитах „addFieldToFilter“, „addAttributeToFilter“ и различни други заявки, като например: addFieldToFilter('is_salable', array('eq' => true))
и т.н.
Някой знае ли как се прави това? Ако „is_salable“ не е отговорът, всичко, което трябва да направя, е да филтрирам продукти, които не са на склад... така че каквото и да работи, ще бъде добре :)
Благодаря!
(string)$this->getProductCollection()->getSelect()
- person clockworkgeek   schedule 14.03.2011__toString()
автоматично ще бъде извикан при конкатенация с низ (от PHP 5.2, вижте документите) - person apfelbox   schedule 13.03.2014isSalable
, както е дефинирано в Mage_Catalog_Model_Product, така че коментарът ви е неправилен. - person Zain Baloch   schedule 28.04.2017