Quelqu'un peut-il me dire comment puis-je accéder à un modèle de la vue dans le codéidien? p>
10 Réponses :
Voir le fil: P>
Affichage Appeler un modèle fort> P>
Au fait, pourquoi devez-vous accéder au modèle code> code> à partir de la vue code>, vous pouvez envoyer les données de modèle à la vue à partir du contrôleur comme une bonne note, conservez votre logique de traitement hors de la vue, vous devez utiliser code > aussi qui est l'approche habituelle et meilleure. p>
contrôleur code> à la place. P>
Nothings Ici note qu'il y a du traitement en vue. En MVC, la vue a accès au modèle. Voir: phpwact.org/pattern/model_view_controller
Ok alors comment accéder à 3 tables à l'aide de la méthode du modèle de contrôleur? Je devais sélectionner des données à partir de 3 tables et toutes dépendent de la valeur générée à partir de la 1ère requête, y a-t-il d'autre manière, j'ai réussi à créer une jointure dans 2 tables, mais aucune idée dans 3 tables qui se joint, toute suggestion?
Lien brisé. Coundigniter a modifié leurs forums.
Cela ne produira absolument rien: p> et cet exemple suivant vous donnera L'erreur fatale Peu importe si cette fonction existe même si cette fonction existe même, La chose à faire est d'avoir une méthode dans votre modèle qui renvoie des données, puis appelez cette fonction et transmettez les résultats dans votre fichier de vue: < / p> ps: comment est la seule réponse que vous avez acceptée la mauvaise chose à faire? em> p> p> p> P> $ ceci-> Charger-> Modèle () CODE> retourne absolument rien. Regardez-le:
système / bibliothèques / loader.php code>.
appelle à une fonction de membre quelque_func () sur un non-objet code>: p>
$ Modèle code> n'est pas un objet. p>
@ BSCHAEFFER - Je suis le modèle de chargement que après que je appelle la fonction. mais cela me donne une erreur "Appel à une fonction de membre AddPost () sur un non-objet"
Il y a un moyen de le faire, j'ai trouvé par accident, mais c'est un ensemble de sécurité à le faire, les modèles sont supposés accéder à l'accès à la base de données et à organiser les données, le contrôleur doit gérer tout type de logique de manipulation de données et est un Allez entre entre la vue et les modèles, cela aide à empêcher l'accès direct à vos données de pages publiques et à centraliser et à manipuler les données en diminuant le temps nécessaire pour déboguer
Etant donné $ Modèle n'est pas un objet, vous pouvez appeler le modèle "Table" à l'aide de "::" Opérateur de résolution de la portée, qui peut appeler la fonction de la classe elle-même sans instance d'objet.
$this->load->model('table'); table::some_funct();
Hey. Vous pouvez accéder à partir de la vue pour modéliser le même mode que vous accédez sur son contrôleur. N'oubliez pas que l'accès à des modèles importait son contrôleur. P>
Chargez un modèle sur le contrôleur
$model_obj->some_method()
Exactement ce que je cherchais. Fonctionne parfaitement!
Très belle réponse.
C'est ce que je cherchais exactement .. Il semble que des millions d'an ont été sauvés
Vous ne devriez pas appeler le modèle de la vue. C'est contre le modèle MVC. Vous devez garder la logique d'entreprise séparée de la vue.
Dans l'UML d'origine, j'ai semblé pour l'architecture MVC, afficher les méthodes d'appels dans le modèle .. p>
http://www.as3dp.com/wp- Contenu / Uploads / 2010/02 / MVC_POPOPE_KRASNER.PNG P>
.. Mais dans la pratique avec les applications PHP, car il n'y a pas de persévérance à suivre les modifications de l'état des objets entre les demandes (ou au moins pas efficacement), je trouve qu'il est préférable de conserver tous les appels de méthode de modèle dans le contrôleur et de passer le résultat à voir si possible. p>
Vous pouvez accéder essentiellement une méthode de la vue dans le codeigniter.
print_r ($mydata);
Vous n'accédez pas au modèle de la vue. Vous l'accédez à partir du contrôleur et fournit la sortie à la vue. Ce n'est pas ce qui est demandé par l'auteur de la question.
Vous pouvez utiliser le code suivant:
$ci =&get_instance(); $ci->load->model(your model); $ci->(your model)->(your function); Note: You have to call your model in your controller.Its working fine
Merci bro .. @ pritam chaudhari
Dans les cas où vous souhaitez accéder à une fonction de modèle à partir d'une vue partagée, vous n'avez pas à charger le modèle requis dans chaque contrôleur qui appellera cette vue. Vous pouvez charger le modèle dans les anciennes versions de codeigniter Le code suivant utilisé pour fonctionner: p> < pré> xxx pré> mais lorsqu'il est testé sur CI 3.1.9, il jette l'erreur suivante
Vous pouvez ajouter le nom de votre modèle à CONFIG-> MODÈLE AutoLoad
$autoload['model'] = array('model_name');