sql >> Databáze >  >> RDS >> Mysql

Potřebujete pomoc s pochopením objektů kolekce produktů Magento a katalogu/modelu produktu

Máte několik způsobů, jak přistupovat k datům z Magento:

  • pomocí load() => načte VŠECHNA data (atributy) vztahující se k modelu. Je to velmi pomalé a výkon zabíjející. U produktu byste měli použít load() pouze na stránce produktu (protože všechna data, která na této stránce použijete, se vztahují k jedinému objektu, takže je můžete načíst celou)

  • using collection => když potřebujete získat seznam objektů, musíte použít (alespoň) kolekci. Je na vás, abyste se rozhodli pro seznam atributů, který chcete načíst. Můžete přidat atribut pro výběr/filtr a kolekce zvládne provést SQL připojení k tabulkám EAV atd... na pozadí

  • používání vlastního SQL => kolekce může být pomalá při práci se složitými objekty (kolekce inicializuje mnoho spojení SQL k tabulce, která možná nepotřebujete)... poslední metodou přístupu k datům z BDD je vytvoření vlastního SQL ve vašem ResourceModel

Ve skriptu, který ukazujete, je velká chyba:načtete celý model do foreach iterující kolekci. Nikdy to nesmíte udělat, pokud musíte načíst() produkt, předpokládám, že je to proto, že jste nenašli atribut v kolekci ? V takovém případě stačí upravit kolekci, abyste získali atribut...

Například pro produkt magento nabízí způsob, jak automaticky přidat (nebo odebrat) atributy k libovolnému produktu->kolekci, kterou vytvoříte. (viz XML tag frontend/product/collection/attributes v config.xml Mage_Catalog)



  1. Vícenásobné rozevírací pole PHP Odeslat formulář do MySQL

  2. Stránkování pro zobrazení maximální hodnoty a omezení zbytku

  3. Oracle:rozdíl mezi max(id)+1 a sekvence.nextval

  4. Jak SQLParameter zabraňuje vkládání SQL?