2010-12-06 5 views
0

Dans mes modèles, je suis leur mise en place à l'aide des constructeurs comme les suivantsPersistant le nom de la table dans les modèles CodeIgniter

function Areas() 
{ 
    parent::Model(); 
    $this->db->from("areas"); 
} 

Cependant, si une méthode de mon modèle interroge la base de données plusieurs fois, il semble que la clause FROM est seulement inclus dans la première requête. Existe-t-il un moyen facile de conserver le FROM pour toutes les requêtes exécutées dans mon modèle (sauf si je l'écrase manuellement)?

Répondre

2

Je déconseille cela. Il serait vraiment difficile de bousculer les bugs plus tard sur la ligne. Le problème, je devine, a plus à voir avec le nom de la table qui change? Dans ce cas, vous pouvez utiliser une constante pour chaque table et modifier le nom dans config.

Si vous vouliez simplement enregistrer une ligne de code, parfois plus de lignes est mieux. C'est le cas ici.

+0

Quel type de bogue cela pourrait-il entraîner? – wheresrhys

+1

Exemple: Vous créez 4 requêtes à la suite, puis vous en ajoutez une au milieu qui se connecte à une table différente, mais en oubliez le. Ou rappelez-vous le, et oubliez d'ajouter un de à l'après pour se connecter à l'autre table à nouveau. Chaque bogue pourrait s'avérer très difficile à tracer. Surtout si ces appels ont plusieurs lignes de code entre eux. - De plus, s'ils ont plusieurs lignes entre eux, vous devez vous rappeler quelle table vous êtes actuellement verrouillé. – DampeS8N

+0

Mais cela ne pourrait pas aller dans l'autre sens: si FROM n'est pas prédéfini pour toutes les requêtes, vous obtiendrez des bogues équivalents pour chaque fois que vous avez oublié d'ajouter la ligne -> from ("nom_table"), ou une faute de frappe dans "nom_table" – wheresrhys

Questions connexes