cakephp Table pour le modèle n'a pas été trouvé dans la source de données par défaut
Je viens d'une table de ma base de données nommée "ficha_seg".
Le nom de mon fichier de modèle est "Ficha.php" et le nom du contrôleur est "FichasController.php".
Alors, pourquoi j'obtiens le message d'erreur:
Error: Table fichas for model Ficha was not found in datasource default.
après avoir configuré ma méthode index() du contrôleur comme ceci:
public function index() {
$this->set('ficha_seg', $this->Ficha->find('all'));
}
est-il un tableau nommé "fichas" dans votre base de données ? Parce que nous devons faire table nom de fichas au nom de nom de modèle Ficha.php
non, c'est "ficha_seg". Il doit être "fichas"?
modifier le nom de la table avec fichas
mais si je voulais accéder à une autre table? est-ce parce que cette méthode est l'index? ou dans les autres, je vais avoir le même problème et ne peuvent pas accéder à d'autres tables?
oui, vous pouvez ... il suffit d'écrire la requête dans votre fichier de modèle comme $this->ModelName->query("votre requête");
non, c'est "ficha_seg". Il doit être "fichas"?
modifier le nom de la table avec fichas
mais si je voulais accéder à une autre table? est-ce parce que cette méthode est l'index? ou dans les autres, je vais avoir le même problème et ne peuvent pas accéder à d'autres tables?
oui, vous pouvez ... il suffit d'écrire la requête dans votre fichier de modèle comme $this->ModelName->query("votre requête");
OriginalL'auteur user1511579 | 2012-11-22
Vous devez vous connecter pour publier un commentaire.
Par défaut, le modèle utilise les minuscules, pluriel du modèle de la classe nom de la base de données nom de la table.
Si vous avez besoin d'utiliser un autre nom de table pour votre modèle, vous pouvez utiliser le
useTable
attribut:Voir http://book.cakephp.org/2.0/en/models/model-attributes.html#usetable
et Modèle de conventions de dans le livre
Cette réponse sera pertinente pour quelques stackoverflow.com/questions/14716004/...
OriginalL'auteur nIcO
À suivre les conventions de CakePHP votre nom de la table doit être au pluriel:
ficha_segs
et le nom de votre modèle doit être "FichaSeg'.Si vous ne voulez pas suivre pour une raison quelconque, faire ce que @nlcO dit.
OriginalL'auteur Alvaro