Magento: méthode non Valide Mage_Bundle_Block_Catalog_Product_view_type_bundle_option_radio
Je vois l'erreur suivante lors de l'ouverture de la page de l'un de nos articles de la boutique. Dans le modèle actuel ne fonctionne pas, dans une autre plaine modèle, il n'. Le problème peut être causé par une mise à jour de magento 1.4 à 1.7.
Quelqu'un peut-il expliquer ce que cela signifie et ce qui se passe? Comment puis-je résoudre ce problème?
a:5:{i:0;s:109:"Invalid method Mage_Bundle_Block_Catalog_Product_View_Type_Bundle_Option_Radio::_getDefaultValues(Array
(
)
)";i:1;s:7069:"#0 /www/htdocs/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/option/radio.phtml(33): Varien_Object->__call('_getDefaultValu...', Array)
Ci-dessous complète le rapport d'erreur. Le produit fait partie d'un bundle.
a:5:{i:0;s:109:"Invalid méthode Mage_Bundle_Block_Catalog_Product_view_type_bundle_option_radio::_getDefaultValues(Tableau ( ) )";i:1;s:7069:"#0 /www/htdocs/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/option/radio.phtml(33): Varien_Object->__call('_getDefaultValu...', Array) #1 /www/htdocs/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/option/radio.phtml(33): Mage_Bundle_Block_Catalog_Product_view_type_bundle_option_radio->_getDefaultValues() #2 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(241): include('/www/ht...') #3 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/base/d...') #4 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView() #5 /www/htdocs/app/code/core/Mage/Catalog/Block/Product/Price.php(154): Mage_Core_Block_Template->_toHtml() #6 /www/htdocs/app/code/core/Mage/Bundle/Block/Catalog/Product/Price.php(97): Mage_Catalog_Block_Product_Price->_toHtml() #7 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Bundle_Block_Catalog_Product_price->_toHtml() #8 /www/htdocs/app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle.php(216): Mage_Core_Block_Abstract->toHtml() #9 /www/htdocs/app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/options.phtml(37): Mage_Bundle_Block_Catalog_Product_view_type_bundle->getOptionHtml(Object(Mage_Bundle_Model_Option)) #10 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(241): include('/www/ht...') #11 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/base/d...') #12 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView() #13 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Template->_toHtml() #14 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(582): Mage_Core_Block_Abstract->toHtml() #15 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(522): Mage_Core_Block_Abstract->_getChildHtml('produit.info.bu...', true) #16 /www/htdocs/app/design/frontend/base/default/template/catalog/product/view/options/wrapper.phtml(28): Mage_Core_Block_Abstract->getChildHtml(", true, true) #17 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(241): include('/www/ht...') #18 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/base/d...') #19 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView() #20 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Template->_toHtml() #21 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(582): Mage_Core_Block_Abstract->toHtml() #22 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(522): Mage_Core_Block_Abstract->_getChildHtml('produit.info.op...', true) #23 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(546): Mage_Core_Block_Abstract->getChildHtml(", true, true) #24 /www/htdocs/app/design/frontend/default/vente de chaussures/template/catalog/product/view.phtml(101): Mage_Core_Block_Abstract->getChildChildHtml('container2', ", true, true) #25 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(241): include('/www/ht...') #26 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/défaut...') #27 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView() #28 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Template->_toHtml() #29 /www/htdocs/app/code/core/Mage/Core/Block/Text/List.php(43): Mage_Core_Block_Abstract->toHtml() #30 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Text_List->_toHtml() #31 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(582): Mage_Core_Block_Abstract->toHtml() #32 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(526): Mage_Core_Block_Abstract->_getChildHtml('contenu', true) #32 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(526): Mage_Core_Block_Abstract->_getChildHtml('contenu', true) #33 /www/htdocs/app/design/frontend/base/default/template/page/2columns-droit.phtml(48): Mage_Core_Block_Abstract->getChildHtml('contenu') #34 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(241): include('/www/ht...') #35 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/base/d...') #36 /www/htdocs/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView() #37 /www/htdocs/app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Template->_toHtml() #38 /www/htdocs/app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abstract->toHtml() #39 /www/htdocs/app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout->getOutput() #40 /www/htdocs/app/code/core/Mage/Cms/Helper/Page.php(137): Mage_Core_Controller_Varien_Action->renderLayout() #41 /www/htdocs/app/code/core/Mage/Cms/Helper/Page.php(52): Mage_Cms_Helper_Page->_renderPage(Objet(Mage_Cms_IndexController), "non-route") #42 /www/htdocs/app/code/core/Mage/Cms/controllers/IndexController.php(75): Mage_Cms_Helper_Page->renderPage(Objet(Mage_Cms_IndexController), "non-route") #43 /www/htdocs/app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Cms_IndexController->noRouteAction() #44 /www/htdocs/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('noRoute') #45 /www/htdocs/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_standard->match(Objet(Mage_Core_Controller_Request_Http)) #46 /www/htdocs/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch() #47 /www/htdocs/app/Mage.php(683): Mage_Core_Model_App->run(Array) #48 /www/htdocs/index.php(119): Mage::run(", 'store') #49 {main}";s:3:"url";s:26:"/nike-bw-black.html";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}
Le code du fichier phtml: http://pastebin.com/6CGq3nSR
Je vous remercie. J'ai ajouté le remplir un rapport d'erreur. J'ai remarqué que cette erreur n'apparaît pas lors de l'utilisation d'un autre modèle.
Collez le contenu du fichier phtml ici s'il vous plaît
J'ai essayé de coller le phtml code, mais qui ne fonctionne pas correctement comme vous pouvez le voir. J'ai utilisé <pre> balises autour d'elle. Ici vous pouvez voir comment il devrait ressembler à: pastebin.com/6CGq3nSR
OriginalL'auteur SPRBRN | 2013-03-26
Vous devez vous connecter pour publier un commentaire.
Il semble que vous avez incompatibles code de différentes version de Magento cours d'exécution sur votre système. Il est également possible que vous ayez une version compilée d'un vieux de la classe, ou d'une collectivité locale/code pool de remplacement. Cela va être long, donc je vais essayer d'appeler le débogage spécifique conseils avec le texte en gras
Que les autres réponses ont souligné, le PHP est vous dire le problème exact.
Magento est d'essayer d'appeler le
_getDefaultValues
méthode sur votreMage_Bundle_Block_Catalog_Product_View_Type_Bundle_Option_Radio
objet. Cependant, dans votre système, cet objet n'a pas cette méthode. Si je regarde une nouvelle installation de Magento 1.7.0.1 , cette classe est définie danset dans sa classe parente
Mage_Bundle_Block_Catalog_Product_View_Type_Bundle_Option
, on peut trouver la définition de_getDefaultValues
Protégé méthodes sont remboursables à partir d'un bloc du modèle, alors cela signifie que ce est pas d'un bug avec l'expédition de la version de Magento, mais est plutôt un problème avec votre système.
De débogage de l'Étape 1: La première chose à vérifier est votre version du fichier
Ne ce fichier ont un
_getDefaultValues
méthode? Si non, si c'estprivate
au lieu deprotected
, alors le problème est votre version de laphtml
modèle est à partir d'une version de Magento, mais votre cœur de fichier de classe est à partir d'un autre, ou a été modifié. Vous pouvez essayer de télécharger une nouvelle copie de Magento version que vous utilisez et en remplaçant le fichier — mais votre système peut avoir d'autres problèmes si c'était bâclé mise à niveau, afin d'être prêts pour cela. La fixation est plus grande qu'un simple Débordement de Pile question.De débogage de l'Étape 2: Vérifiez votre localité et code communautaire des piscines.
Magento vous permet de remplacer les fichiers de classe à l'aide de la
app/code/community
etapp/code/local
code de piscines. Votre système peut avoir une version de ce fichier de classe dans l'un de ces piscines. Vérifier un fichier danset si il y a un fichier, vérifiez que le
_getDefaultValues
méthode. Si il n'y est pas, ou si c'estprivate
au lieu deprotected
, vous avez trouvé votre problème. La fixation de ce sera, de nouveau, être délicat. Si le fichier a été placé ici, il signifie un développeur précédent ajouté ou changé de méthodes. Vous pouvez réparer votre erreur ci-dessus par la suppression de lalocal
oucommunity
fichier, mais alors vous perdez cette fonctionnalité personnalisée. Vous aurez besoin de fusionner une bonnecore
fichier avec votrelocal
/community
fichier OU vous aurez besoin pour identifier la fonctionnalité supplémentaire dans votrelocal
/community
fichier et refactoriser ces utiliser la classe réécrit, et seulement ensuite supprimer le fichier. Encore une fois, c'est un processus qui est plus compliqué qu'un simple débordement de pile réponse.De débogage de l'Étape 3: désactiver la compilation.
Il est également possible que Magento est en cours d'exécution dans "compilé" mode, et que les "compilé" la version de votre classe. Désactiver le mode de compilation de
ou en ligne de commande avec
et recompiler vous classes.
De débogage de l'Étape 4: Claire opt cache de code.
Si vous utilisez un système comme APC cache PHP opt code, il est peut-être une ancienne version de la classe est à l'opt cache de code. Comme il y a de nombreuses options ici, je vais laisser la compensation de ce cache comme un exercice pour le lecteur.
De débogage de l'Étape 5: Utiliser la réflexion pour identifier le fichier de classe
Si vous n'avez pas encore identifié le rouge de la classe à ce stade, ajouter le code suivant à la fin de
index.php
Cela va instancier un bloc de classe et utiliser la réflexion pour vous dire où c'est le fichier de définition est. À partir de là, vous pouvez comprendre pourquoi c'est la définition de l'erreur de fichier, et ce que vous devez faire pour l'enlever.
En supprimant le fichier local a fait le tour. Merci beaucoup!
Vérifiez également que vous n'êtes pas redeclaring/plus d'écrire le même nom d'un au-dessus de instancié de la classe.
OriginalL'auteur Alan Storm
Vous semble être l'appel d'une non-existence de la méthode sur un objet de type
Mage_[...]_Radio
.La classe
Mage_Bundle_Block_Catalog_Product_View_Type_Bundle_Option_Radio
n'a pas tout public méthode appelée_getDefaultValues
.Après un peu de recherche, j'ai trouvé que la méthode il existe en fait dans cette catégorie, mais sa visibilité est protégé par conséquent, pour y accéder, il vous héritez de la
Mage_[...]_Radio
de classe et de les rendre publiques, accessibles ou à laisser protégé:regarder le modifier. Malheureusement je ne peux pas obtenir mes mains sur le code source. Pouvez-vous montrer la partie du code qui est le déclenchement de cette erreur?
Est-ce que vous avez besoin? pastebin.com/6CGq3nSR
ouais c'est mal. Est-ce fourni par Magento comme il est?
OriginalL'auteur Shoe