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
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,