Bonjour,

Voila je rencontre un petit problème avec mon code. Je suis en train de suivre le tuto sur la POO.

j'ai un problème avec la fonction magique :

<?php    public function __get($key){
        $method = 'get' .ucfirst($key);
        $this->$key = $this->$method();
        return $this->$key;
    }

ça me met l'erreur suivante :

( ! ) Fatal error: Uncaught Error: Call to undefined method App\Table\Categorie::getUrl() in /Applications/MAMP/htdocs/etude/app/Table/Table.php on line 26

J'ai pourtant bien recopié le meme code...

6 réponses


Tu dois mélanger les deux fichiers Categorie.php et Table.php
vérifie que la classe Categorie est bien dans Categorie.php (cf "TP Création des classes Table" 14'56")

Haoxi
Auteur

Oui oui elle est bien dans catégorie.php
La classe __get est dans Table.php

Bonjour.
Tu ne semble pas avoir compris la formation.
Ce n'est pas dans la classe Table que tu dois définir la fonction __get, mais dans la classe Entity, car elle ne correspond pas à la table, mais à un enregistrement de celle-ci.
Ensuite, as-tu bien pensé à définir la fonction getUrl dans la classe qui représente une entité de la table correspondante ?

Haoxi
Auteur

Bonjour,

Pas compris la formation ? Je pense surtout que l'on parle pas du même endroit..

Pour le moment c'est bien dans la classe Table !

https://www.grafikart.fr/formations/programmation-objet-php/tp-tables :: 16min50

Sauf erreur de ma part je ne suis pas rendu à la classe Entity

Je parle bien de la même vidéo, sauf que je ne peux pas deviner que tu n'as pas regardé la vidéo jusqu'à la fin.
Tu m'excuseras donc de ne pas pouvoir rentrer dans ta tête pour savoir ce que tu ne nous dit pas.

Haoxi
Auteur

meme à la fin de la vidéo je ne trouve pas la classe Entity ?