Bonsoir.
C'est normal.
Pour commencer, il faut éviter de nommer une fonction de Model : test.
Ensuite, lorsque tu crées une fonction dans ton modèle qui sort de celles fournies par CakePHP, il est préférable de la préfixer par get, de manière à faire un getter.
Par exemple :
Bonjour,
Voilà mon souci, j'ai mon model suivant "WorkModel" dans lequel j'ai crée une fonction test() qui retourne true.
Depuis le controller "WorksController", j'essaye de faire appel à cette fonction mais j'ai l'erreur suivante :
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'test' at line 1
Après plusieurs recherches, je me suis rendu compte que si je crée la fonction dans "AppModel" alors j'aurais plus l'erreur.
Mais vous imaginez que cela ne me convient pas, car tout mes models auront accès à cette fonction.
Et je ne comprends pas pourquoi Cake passe outre mon model pour direct passer à AppModel.
Pour info :
Version de Cake : 2.6.2
Version php : 5.5
WorkModel.php
WorksController.php
Merci par avance pour tout aide apporté.
3 réponses
Oui en effet, je sais.
A la base ma fonction était "getWorks", mais j'avais également l'erreur.
Problème résolu, j'avais juste mal nommer mon fichier ce n'est pas WorkModel.php mais Work.php.
Tout ça de temps à chercher pour au final, une erreur d'inattention pfff...
Parfois dégouté