Problème d'objet non reconnu

Fermé
ephelya Messages postés 289 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 7 janv. 2015 à 20:43
ephelya Messages postés 289 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 8 janv. 2015 à 02:31
Bonjour tout le monde,

Je m'arrache les cheveux sur un objet php dénommé $article...
Si je fais un print_ r j'obtiens ça :
Models\Produits Object
(
[_Id:Models\Produits:private] => 6
[_Nom:Models\Produits:private] => service 6 personnes
[_Description:Models\Produits:private] => assiettes creuses et plates
[_Idcategorie:Models\Produits:private] => 2
[_Categorie:Models\Produits:private] => Vaisselle
[_Idsouscategorie:Models\Produits:private] =>
)


par contre si je fais
 echo $article -> Nom(); 

ça me sort

Fatal error: Call to a member function Nom() on a non-object in /home/mademoiswq/trokadeco/travail/app/Views/Templates/Front/Vues/showroom.php on line 140


Qu'est-ce qui m'échappe????
Merci d'avance pour votre aide !

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
8 janv. 2015 à 01:29
Bonjour,
Il semble que la propriété NOM soit en private .. tu ne peux donc pas y accéder en dehors de l'objet.

A la limite tu dois pouvoir le convertir en ARRAY
un truc du genre :

$newArray = (array) $article ;
print_r($newArray);
echo $newArray ['Nom'];  // ou echo $newArray ['_Nom'];




0
ephelya Messages postés 289 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 2
Modifié par ephelya le 8/01/2015 à 02:33
Merci pour cette réponse, mais tous les objets affichent leurs propriétés en private, jusqu'ici tout va bien, le print_r me sert seulement à m'assurer que j'ai bien réussi à récupérer l'objet que je voulais, et c'est bien le cas.
Je ne cherche pas à accéder aux propriétés en direct mais au contraire par la fonction Nom() par exemple qui elle va se charger d'afficher l'attribut en question.
private $_Nom; 
public function Nom() { return $this->_Nom; }

En tout cas ça fonctionne pour tous les objets que j'utilise, donc je ne vois pas pourquoi celui-ci bloque...
De plus, $newArray['Nom'] ne m'affiche rien... :-/
0