2016-06-09 1 views
0

J'ai utilisé des requêtes de base de données dans des fonctions d'aide dans le framework CodeIgniter. Supposons qu'une base de données comporte de nombreuses tables, par exemple,Est-ce une bonne pratique d'utiliser les requêtes de base de données dans les fonctions d'aide de codeigniter?

école, étudiant, etc ... et il y a des tâches communes sont nécessaires dans l'application, telles que la génération ids uniques au hasard pour chaque entrée dans une table, la récupération d'une ligne entière de la ligne assortie d'une table,. .. etc sont requis.

Maintenant, nous pouvons écrire des fonctions pour chaque tâche dans les modèles respectifs de la base de données, par ex.

En School_model:

class School_model extends CI_Model 
{ 
    // some code ...  

    function generateID() 
    { 
     // code to generate unique id by checking the database 
    } 

    // some code ... 
} 

et Student_model:

class Student_model extends CI_Model 
{ 
    // some code ...  

    function generateID() 
    { 
     // same code to generate unique id except the table name 
    } 

    // some code ... 
} 

Ou nous pouvons passer le nom_table comme argument à une fonction d'assistance que:

function generate_ID($table_name) 
{ 
    // code to genetrate unique id by checking in $table_name 
} 

La duplication de code plus ancienne prévient (DRY). Mais est-ce une bonne pratique d'utiliser des requêtes de base de données dans des fonctions en dehors des modèles.

Répondre

2

Je pense que l'extension du cœur Codeigniter est la meilleure approche pour cela.

class MY_Model extends CI_Model { 

Vous pouvez écrire le function generate_ID($table_name){ dans le modèle de base

Enfin étendre votre modèle avec MY_Model

class Student_model extends MY_Model