TP : Connexion à la base de donnée

Par Fatavis, il y a 9 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.
Je suis le tuto suivant TP : Connexion à la base de donnée, je suis arrivé vers la 28ème minute au moment où on a fini de créer le public function __get($key).
Voici mon code dans article.php :

<?php namespace App\Table; class Article { public function __get($key){ $method = 'get' . ucfirst($key); return $this->method(); } public function getUrl(){ return 'index.php?p=article&id' . $this->id; } public function getExtrait(){ $html = '<p>'. substr($this->contenu,0, 150).'...</p>'; $html .= '<p><a href="'.$this->getUrl().'">Voir la suite</a></p>'; return $html; } }

Voici mon code dans home.php

<ul> <?php foreach($db->query('SELECT * FROM article', 'App\Table\Article') as $post): ?> <h2> <a href="<?= $post->url ?>"><?= $post->titre;?></a> </h2> <p> <?= $post->extrait; ?> </p> <?php endforeach; ?> </ul>

J'ai donc l'erreur suivante : ( ! ) Fatal error: Call to undefined method App\Table\Article::method() in C:\wamp\www\blog\app\Table\Article.php on line 6 Call Stack #TimeMemoryFunctionLocation 10.0039136120{main}( )..\index.php:0 20.0102167752require( 'C:\wamp\www\blog\pages\home.php' )..\index.php:15 30.0191184368App\Table\Article->__get( )..\index.php:5

Je ne comprends pas ce qu'elle veut dire si quelqu'un veut bien m'aider :)

Merci d'avance

2 réponses

GallandJe, il y a 9 ans

Salut,

Ton erreur est toute bête :

return $this->method();

En fait c'est :

return $this->$method();

Tu as simplement oublié le $ avant method(). ça devrait fonctionner avec cette correction :)

Cordialement,

Fatavis, il y a 9 ans

Merci de ta réponse rapide. Tu m'as bien aidé :)
Au revoir