Est-il même possible de faire quelque chose comme ça dans le codeigniter? Est-ce considéré comme une bonne pratique en général?Puis-je transmettre des arguments dans une fonction de modèle?
Répondre
Oui, c'est possible.
Je le fais tout le temps, si les données ne sont pas de la poste, je peux l'envoyer au modèle.
$this->load->model('some_model');
$this->some_model->some_function($var);
Quelles données voulez-vous envoyer au modèle? Cela aidera à décider si c'est une mauvaise pratique.
Bien sûr, c'est possible! Comme Kieran l'a montré, vous pouvez simplement écrire des fonctions dans votre classe de modèle qui accepte les paramètres. N'oubliez pas que votre contrôleur doit d'abord analyser/valider ces paramètres, aucune validation supplémentaire ne doit être incluse dans votre modèle. Votre modèle doit être strictement utilisé pour écrire et lire à partir de la base de données. Par conséquent, en règle générale, vous ne devez transmettre que des arguments contenant des données réelles à stocker ou à utiliser dans vos requêtes.
J'écris habituellement différentes fonctions pour différents cas de WHERE. Par exemple:
select($id){}
select_by_name($name){}
...
Cela permet de garder votre modèle compréhensible. La seule exception que je fais est dans le cas de limiter votre résultat. Dans tous mes modèles, j'ai sur la fonction de sélectionner tous les enregistrements, avec une option pour passer deux des variables à des fins de Pagination:
select_all($start=null,$limit=null){
$qry = "SELECT * FROM ...";
if($start != null) $qry .= " LIMIT ?,?";
return $this->db->query($qry,func_get_args());
}
- 1. Créer des chaînes en fonction des arguments de modèle
- 2. générer des arguments de fonction dans Java
- 3. Comment transmettre des arguments au service Windows
- 4. javascript web workers - comment transmettre des arguments?
- 5. Comment transmettre des arguments au script shell?
- 6. Utilisation des arguments de fonction dans update.formula
- 7. Longueur des arguments de la fonction Python?
- 8. Comment transmettre des paramètres de fonction dans une requête regex?
- 9. Passer des arguments à une fonction?
- 10. C++ spécialisation de modèle de fonction: "l'utilisation illégale des arguments de modèle explicite"
- 11. Transmettre des données de l'espace de travail vers une fonction
- 12. arguments de modèle par défaut dans C++
- 13. Passage direct des arguments d'une fonction à une autre fonction
- 14. Comportement étrange des arguments de modèle dans Visual C++?
- 15. Problème PostgreSQL avec des arguments nommés dans une fonction
- 16. Appelez une fonction javaScript avec des arguments dans jQuery
- 17. Arguments variables dans une fonction iPhone ObjC
- 18. Arguments de modèle
- 19. Comment transmettre des valeurs de grails à une fonction javascript?
- 20. appel() de la fonction avec des arguments
- 21. Passant tous les arguments d'une fonction à une autre fonction
- 22. arguments et conditions passage au modèle dans CodeIgniter
- 23. pointeur de fonction avec des arguments connus
- 24. Méthodes conventionnelles pour transmettre des arguments au programme interprété
- 25. C++ Modèle Constructeur de la classe avec des arguments variables
- 26. modèles de fonction avec des arguments de modèle de classe typedef
- 27. Accepter des modèles de classe variadique imbriqués comme arguments du modèle de fonction
- 28. Comment utiliser des balises de modèle imbriquées avec des arguments?
- 29. Python - Obtenir des arguments de fonction d'origine dans le décorateur
- 30. Arguments de la fonction anonyme JavaScript
On peut se demander si votre modèle devrait également avoir la validation d'entrée ou non, alors n » Je publie cela comme un fait. Une architecture en couches solide est validée à tous les niveaux. Comme on ne peut pas appeler directement une méthode Modèle en dehors de CI, il est tolérable de ne pas répéter la validation dans un Modèle, bien que la vérification des entrées pour les requêtes s'applique toujours. – Ferdy