Bonjour à tous,
J'ai un léger problème avec mon code.
Je cherche à mettre en place un site avec le Framework Slim, un accès à une base de données MySQL via PDO, le tout avec une interface Twig/Bootstrap.
J'ai suivi le tutoriel : https://www.grafikart.fr/tutoriels/php/slim-framework-831
Le code est accessible en intégralité sur GitHub : https://github.com/joedu12/oriTrail-slim3
Accès à la base de données (Slim Framework 3)
Je suis dans PagesController et j'aimerais avoir l'accès à l'objet PDO
class PagesController extends Controller {
public function getLieu(RequestInterface $request, ResponseInterface $response) {
// ce code plante :
$lieux = $this->$database->query('SELECT * FROM Lieu');
var_dump($lieux);
$this->render($response, 'pages/lieu.twig');
}
}
Pourtant l'accès à la base de données dans la classe parente fonctionne :
class Controller {
private $container;
public function __construct($container) {
$this->container = $container;
// ce code fonctionne :
$database = $this->container->get('db');
$lieux = $database->query('SELECT * FROM Lieu');
var_dump($lieux);
}
public function render(ResponseInterface $response, $file) {
$this->container->view->render($response, $file);
}
}
Ce que je veux
Accéder à la base de données dans la classe fille.
Ce que j'obtiens
Undefined variable: database in /srv/http/oriTrail-slim3/app/Controllers/PagesController.php on line 25
Logique vu que $database n'existe pas, mais comment faire pour qu'il existe ?
Merci de m'avoir lu, en espérant que vous pourrez m'aider.