Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Fatal Error beim Anlegen eines Produktes
 
anme
Jr. Member
 
Total Posts:  10
Joined:  2009-02-24
Liechtenstein
 

Hallo

Ich bekommen beim Anlegen eines neuen Produktes den Fatal Error:

Call to a member function setData() on a non-object in .../app/code/core/Mage/Eav/Model/Config.php on line 635

Die Maske um die Produkteinstellungen azulegen wird noch angezeigt, beim anschliessenden Klick auf weiter kommt diese Fehlermeldung.

Magento Version 1.3.0

Das Anlegen hatte auch schon funktioniert. Kann mir jemand einen Hinweis geben, wo der Fehler liegen könnte?

Vielen Dank im voraus!

 
Magento Community Magento Community
Magento Community
Magento Community
 
mago
Jr. Member
 
Avatar
Total Posts:  25
Joined:  2009-03-29
Germany
 

Diese Fehlermeldung verweist auf folgende Zeile:

$attribute = Mage::getModel($model)->setData($attributeData);

In $model müsste “catalog/resource_eav_attribute” stehen.

Ich würde den Code mal wie unten gezeigt um eine Ausgabe ins error-log erweitern, um zu schauen, was da bei Dir steht.
Denn es wird bei Dir einem Verweis auf eine Klasse geben, die es nicht gibt. Deshalb “Call to function on a non-object”.

if (isset($attributeData['attribute_model'])) {
    $model 
$attributeData['attribute_model'];
}
else {
    $model 
$entityType->getAttributeModel();
}
error_log
("_createAttribute() model=$model");
$attribute Mage::getModel($model)->setData($attributeData);

Bei Dir kann die richtige Klasse zum Speichern der Attribute nicht ermittelt werden.
Nun wäre es interessant zu sehen, was bei Dir in $model steht.

Welchen Browser verwendest Du?

 
Magento Community Magento Community
Magento Community
Magento Community
 
j.temmel
Member
 
Avatar
Total Posts:  52
Joined:  2009-06-15
 

hallo,
ich habe nachdem ich ein paar zusaetzliche Attribute angelegt habe und alle Produkte automatisch upgedatet habe, edas gleiche Problem.
Im Admin-Bereich sind die Produkte nicht mehr zu öffnen mit dem Fehler
Fatal Error: Call to a member function setData() on a non-object in .../app/code/core/Mage/Eav/Model/Config.php on line 647
ebenso wenn ich von der Website aus auf ein Produkt klicke.
Zudem hatte ich beim Updaten der Produkte mit MagneticOne Store Manager immer die Fehlermeldung dass die neu angelegten Attribute nicht existieren würden…
Wenn ich im Store Manager jettzt ein einzelnes Produkt anschaun will, sind die Attribute dort hinterlegt und ausgefüllt.

was kann ich tun?

 
Magento Community Magento Community
Magento Community
Magento Community
 
j.temmel
Member
 
Avatar
Total Posts:  52
Joined:  2009-06-15
 

Hallo,
inzwischen hatte ich
alle Attribute wieder gelöscht und
$attribute = Mage::getModel($model)->setData($attributeData);
auskommentiert
die Attribute wieder angelegt und befüllt, jeweils mit umfangreichen Tests und Backups der DB
hat alles offensichtlich gepasst, nur dann konnte man nicht mehr in den Adminbereich neueinloggen - habe ich wohl nicht gemerkt weil ich die ganze Zeit ohnehin eingeloggt war.
Jetzt ist es so, wenn die Zeile wegkommentiert ist, kann ich meine Produkte sehen, dafür nicht in den Adminbereich, wenn die Zeile drin ist, komme ich zwar in den Adminbereich dafür hab ich keine Produkte mehr.

Kann mir jemand dringend bitte bitte helfen? Ich bin wirklich schon am Verzweifeln. Ich weiss auch gar nicht was ich eigentlich beim Attributeimport falsch gemacht habe.

 
Magento Community Magento Community
Magento Community
Magento Community
 
IngGross_de
Sr. Member
 
Avatar
Total Posts:  93
Joined:  2009-03-18
Switzerland
 

Hi Mago

mago - 08 April 2009 07:21 AM

Diese Fehlermeldung verweist auf folgende Zeile:

$attribute = Mage::getModel($model)->setData($attributeData);

In $model müsste “catalog/resource_eav_attribute” stehen.

Ich würde den Code mal wie unten gezeigt um eine Ausgabe ins error-log erweitern, um zu schauen, was da bei Dir steht.
Denn es wird bei Dir einem Verweis auf eine Klasse geben, die es nicht gibt. Deshalb “Call to function on a non-object”.

if (isset($attributeData['attribute_model'])) {
    $model 
$attributeData['attribute_model'];
}
else {
    $model 
$entityType->getAttributeModel();
}
error_log
("_createAttribute() model=$model");
$attribute Mage::getModel($model)->setData($attributeData);

Bei Dir kann die richtige Klasse zum Speichern der Attribute nicht ermittelt werden.
Nun wäre es interessant zu sehen, was bei Dir in $model steht.

Welchen Browser verwendest Du?

Dieser Thread ist zwar schon eine weile her, jedoch bin ich in die gleiche Fehlermeldung geraten. Ich bin also Deinem Rat gefolgt und habe diesen Code ergänzt:

if (isset($attributeData['attribute_model'])) {
            $model 
$attributeData['attribute_model'];
        
}
        
else {
            $model 
$entityType->getAttributeModel();
        
}
//    error_log("_createAttribute() model=$model");
    
echo "model: ",$model,"<br>";
    echo 
"attributeData: ",$attributeData,"<br>","<br>";
    
        
$attribute Mage::getModel($model)->setData($attributeData);

Die Ausgabe dazu wie folgt:

modelcatalog/resource_eav_attribute
attributeData
: Array

(
20x das Gleicheweggeschnitten)

modelcatalog/resource_eav_attribute
attributeData
: Array

model:
attributeData: Array

Fatal errorCall to a member function setData() on a non-object in /home/brady-schweiz.ch/public_html/app/code/core/Mage/Eav/Model/Config.php on line 650

Das Model war also vor der Fehlermeldung NULL, also kein Wunder.
Es kann sein, dass irgend eins meiner Attribute fehlerhaft ist, ich hatte mal mit dieser Extension experimentiert:
http://www.magentocommerce.com/extension/reviews/module/1491/morningtime-textfield-for-layered-navigation

Als ich die verdächtigte, habe ich sie wieder rausgeschmissen und das Attribut gelöscht und neue angelegt, aber vielleicht ist da noch was?

Wie kann ich dem auf die Spur kommen?

Gruss
Res

 
Magento Community Magento Community
Magento Community
Magento Community
 
IngGross_de
Sr. Member
 
Avatar
Total Posts:  93
Joined:  2009-03-18
Switzerland
 

Ich habe mir vorübergehend mit dem folgenden Code geholfen:

if ($model ""{
        $attribute 
Mage::getModel($model)->setData($attributeData);
    
}

Dadurch gibt es keine Fehler mehr und Magento scheint wieder zu funktionieren.
Aber ich würde natürlich gerne die Fehlerursache in den Daten finden und beheben.

Kann mir jemand sagen, wie ich z.B. mittels echo ausgeben kann, auf welches Attribut sich der Fehler bezieht?

Danke für jeden Tipp.

Res

 
Magento Community Magento Community
Magento Community
Magento Community
 
IngGross_de
Sr. Member
 
Avatar
Total Posts:  93
Joined:  2009-03-18
Switzerland
 

Schließlich bin ich selbst drauf gekommen,
ich habe anstelle dieser Zeile in /public_html/app/code/core/Mage/Eav/Model/Config.php

$attribute Mage::getModel($model)->setData($attributeData);
diesen erweiterten Code verwendet
if ($model <> ""{
        $attribute 
Mage::getModel($model)->setData($attributeData);
    
}
        
else {
    
echo "model: ",$model,"<br>";
    echo 
"attributeData: ",$attributeData,"<br>";
        echo 
$this->_getAttributeKey($entityTypeCode$attributeData['attribute_code']),"<br>","<br>";
        
}
Das führte dazu, dass statt der unerklärlichen Fehlermeldung die Attribute aufgelistet wurden, die den Fehler verursacht haben.
Dann habe ich die gelöscht und es geht auch mit dem Original-code.

Ich habe allerdings nicht herausfinden können, was an diesen Attributen falsch gewesen sein soll.
Ich gebe sie jetzt einfach noch mal neu ein.

Gruß
Res

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top