Bonjour,
Est-il possible de convertir un objet de la classe object (obtenu par un PDO::fetch_obj) en objet de la classe voiture par exemple ?
Ou alors faut-il passer par une instanciation à la main ?
Merci
Bonjour,
Est-il possible de convertir un objet de la classe object (obtenu par un PDO::fetch_obj) en objet de la classe voiture par exemple ?
Ou alors faut-il passer par une instanciation à la main ?
Merci
Tu pourrais développer un peu ta question avec un petit exemple basique ?
Voici le code :
Ma question est de savoir si je peux écrire quelque chose du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $resultat->execute(); $obj= $resultat->fetch(PDO::FETCH_OBJ);
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part $uneVoiture = (Voiture) $obj
D'après la doc les seuls cast autorisés sont :
http://php.net/manual/fr/language.ty...e-juggling.php(int), (integer) : modification en integer
(bool), (boolean) : modification en boolean
(float), (double), (real) : modification en float
(string) : modification en string
(array) : modification en array
(object) : modification en object
(unset) : modification en NULL (PHP 5)
Tu peux te faire ta proopre fonction de cast en parcourant l'objet reçu et en hydratant un autre objet du bon type.
Tu peux aussi utiliser la reflexion
Le plus simple étant sans doute de faire quelque chose comme ça :
Faut juste être conscient que c'est la méthode de récupération des données la plus lente que tu puisse avoir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $result = $sth->fetchAll(PDO::FETCH_CLASS, "MaClasseSpeciale");
Personnellement, j'aurais plutôt tendance à faire un fetch simple et à prévoir une méthode d'hydratation dans ma classe pour remplir mon objet.
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.
Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]
Partager