Bonjour,
J'ai besoin de mettre en place une fonction commune à mes modèles.
J'ai des modèles définis comme ceci :
et
Code de Fournisseur.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php App::uses('AppModel', 'Model'); class Fournisseur extends AppModel { public $useTable = 'fournisseurs'; }
Code de Articles.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php App::uses('AppModel', 'Model'); class Articles extends AppModel { public $useTable = 'articles'; }
Ma fonction doit me renvoyer le nom de mes $useTable
J'ai donc fait :
Code de AppModel.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php App::uses('Model', 'Model'); class AppModel extends Model { public function getTable(){ return $this->useTable; } }
Tant qu'il n'y a que ça, tout se passe bien, pas d'erreur de compilation.
Le problème arrive quand je veux appeler cette fonction dans mon contrôleur
Code de FournisseursController.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php App::uses('AppController', 'Controller'); class FournisseursController extends AppController { public $uses = array( 'Fournisseur', 'Article', ); public function index(){ var_dump($this->Fournisseur->getTable()); exit(); }
L'appel de la fonction me fait une erreur SQL (oui, SQL)
A noter : la même erreur SQL arrive si je change ma fonction comme ceci :Envoyé par Erreur
Quelqu'un peut éclairer ma lanterne ? Même une simple piste...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public function getTable(){ return 'toto'; }
(et oui, je sais que je n'ai pas besoin de mettre $useTable = "articles" puisque c'est la convention de nommage automatique, mais le nom de table changera à l'avenir...)
Partager