dans ta class Table, ta pas un soucis avec ton constructeur :
C'est quoi se Database ? si tu l'enlève sa donne quoi ? il as instancié plusieurs fois Database c'est peut être sa ton problème
Bonjour,
Je travaille à partir de la formation "La POO en PHP".
J'ai la nécessité, de pouvoir créer / modifier / supprimer directement des tables dans ma base de données.
Pour le moment, je commence à faire un code simple pour ensuite ajouter des options.
Du coup, dans la class Database j'ai :
Pour pouvoir lancer mes requêtes de création de table j'ai ajouté la fonction exec()
Dans la class Table on retrouve les fonctions créées pendant la formation :
J'ajoute à cette classe la fonction newtable() permettant de créer mes tables :
J'ai la class qui contient les requêtes scpécifiques à mon controller (vide pour le moment) :
Et enfin mon controller qui contient le contenu de la requête afin de générer ma nouvelle table :
J'ai un message d'erreur quand je lance ma page :
( ! ) Catchable fatal error: Argument 1 passed to MyPraline\Tables\Table::__construct() must be an instance of MyPraline\Tables\Database, instance of MyPraline\Database\Database given, called in C:\wamp64\www\MyPralineMVC\app\App.php on line 37 and defined in C:\wamp64\www\MyPralineMVC\app\Tables\Table.php on line 9
Call Stack
1 0.0007 241328 {main}( ) ...\index.php:0
2 0.0014 257408 App::load( ) ...\index.php:8
3 0.0027 282960 MyPraline\Router\Router->construct( ) ...\App.php:30
4 0.0044 312776 MyPraline\controllers\CronController->construct( ) ...\Router.php:21
5 0.0062 364488 MyPraline\controllers\AppController->loadModel( ) ...\CronController.php:13
6 0.0062 364528 App->getTable( ) ...\AppController.php:38
7 0.0070 400840 MyPraline\Tables\Table->__construct( ) ...\App.php:37
La ligne 37 de class App correspond :
Si quelqu'un peut m'aiguiller dans le déplantage je suis preneur...
dans ta class Table, ta pas un soucis avec ton constructeur :
C'est quoi se Database ? si tu l'enlève sa donne quoi ? il as instancié plusieurs fois Database c'est peut être sa ton problème
Salut,
en regardant ton code de ta ligne 37, il me semble que ta variable suivante n'est pas déclaré ou alors tu t'ai trompé sur son nom :
je me trompe peut être car y a peut être pas toute ton code source.
Mais ta fonction getTable est bizarre je trouve, j'ai pas suivi cette formation.
En effet, j'ai enlevé les parties qui je pense ne sont pas en cause.
La fonction getTable permet de charger un class qui comprend les "structures" de requêtes SQL que je peux être amenées à utiliser partout sur le site.
Dans la class App tu as aussi ce morceau de code qui permet d'instancier la classe Database que j'ai indiqué ci-dessus :
Salut,
montre nous les codes qui correspondent au message d'erreur,
en commantant pour préciser le nom du fichier, et la ligne :
1)
MyPraline\Tables\Table->__construct( ) ...\App.php:37
2)
App->getTable( ) ...\AppController.php:38
On veut voir la fonction getTable en entière, et dans quel fichier elle est écrite,
et aussi la ligne 38 de AppController.php
3)
MyPraline\controllers\AppController->loadModel( ) ...\CronController.php:13
On veut voir la fonction loadModel en entière, et dans quel fichier elle est écrite,
et aussi la ligne 13 de CronController.php
4)
Pourquoi est-ce qu'on voit "loadModel()", ET "getTable()" ?
La fonction getTable permet de charger un class qui comprend les "structures" de requêtes SQL que je peux être amenées à utiliser partout sur le site.
Alors que fait la fonction "loadModel()" ?
J'ai l'impression que ce sont les même fonctions.
Je viens de trouver !!!
J'ai une ligne de code que j'ai fait sauter je ne sais pas comment, dans ma class "Table" j'ai supprimé par erreur le :
Une fois corrigé mon codre refonctionne et ressemble :
Merci pour votre aide !!!