Erhalte eine Liste mit Attributoptionen von Magento
Ich habe grabbing Attribut-Optionen aus Magento in etwa so:
<?php
if ($attribute->usesSource()) {
$options = $attribute->getSource()->getAllOptions(false);
}
?>
Es war in Ordnung arbeiten, bis ich habe versucht, um die Optionen für die eingebaute "color" - Attribut -- ich bekam die folgende Fehlermeldung:
PHP Fatal error: Call to a member function setAttribute() on a non-object in app/code/core/Mage/Eav/Model/Entity/Attribute/Abstract.php on line 374
Scheint es, dass die getSource()
Aufruf schlägt fehl, und diesen Fehler verursacht. Weiß jemand warum das passiert und wie bekomme ich Farbe Optionen aus?
Dank!
Kommentar zu dem Problem
haben Sie in der Lage gewesen, um zu Debuggen live mit xdebug und IDE? Sie könnten in der Lage sein, bohren Sie in die $Attribut- > getSource () - Aufruf, um zu sehen, was fehlschlägt. Ich weiß nicht, aus irgendeinem Grund, warum Sie die
color
sollte anders anderen Parametern. InformationsquelleAutor der Frage Chris Forrette | 2010-10-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es sieht so aus, initialisieren Sie das Attribut durch sich selbst, statt mit Magento Attribut-Initialisierung:
Weil seit 1.4.x Magento verfügt über separate Attribut-models für Katalog und Kunden-Modell und die definition von default-source-Modell für
catalog_product
jetzt verschoben von EAV-Attribut Modell (Mage_Eav_Model_Entity_Attribute
), um den Katalog einer (Mage_Catalog_Model_Resource_Eav_Attribute
).Als ein Ergebnis, einige Katalog-Attribute funktionieren nicht mit dem EAV-Attribut-Modell. Besonders jene, die Nutzung
Mage_Eav_Model_Entity_Attribute_Source_Table
aber nicht explizit definieren (Farbe, Hersteller, etc.).Den folgenden code-snippet sollte funktionieren perfekt auf Ihre installation:
Übrigens
Mage_Eav_Model_Config
Modell hat eine Menge hilfreiche Methoden, die verwendet werden können, in Ihrer Entwicklung, so zögern Sie nicht, schauen Sie in dieses Modell.InformationsquelleAutor der Antwort Ivan Chepurnyi
Der obige code funktioniert nicht, wenn der resource_model leer ist. Der folgende Abschnitt macht den job:
InformationsquelleAutor der Antwort Tuong Le
InformationsquelleAutor der Antwort amit vyas
Entschuldigung für eine unvollständige Antwort, aber nehmen Sie einen Blick auf die Datenbank, speziell in der
backend_model
Spalte. Ich scheinen erinnere mich, dass Sie das gleiche problem, bis ich diese Feld entsprechen einige der system-Feld in diesem Zusammenhang.InformationsquelleAutor der Antwort Joseph Mastey