codeigniter - charger une bibliothèque depuis une vue?
J'ai des données que j'ai à l'affichage sous forme de tableau.
Je pense que je devrais passer les données du contrôleur $data['événements'] = array(.....
puis de charger la vue à afficher.
<?php
$this->load->library('table');
echo $this->table->generate($events);
?>
cela ne fonctionne pas bien qu'il donne une erreur Fatale: Appel à un membre de la fonction generate() sur un non-objet
Si je coller le même code dans le contrôleur, de toute évidence en utilisant ->générer($data['événements'] le tableau s'affiche correctement.
Devrais-je obtenir que les points de vue ne peut pas charger des bibliothèques, ou je fais quelque chose de mal?
Ou peut-être devrais-je capturer la sortie de la bibliothèque dans le contrôleur et l'envoyer à la vue?
source d'informationauteur Patrick
Vous devez vous connecter pour publier un commentaire.
Vous devez exécuter le code ci-dessous dans le contrôleur:
et stocker les données dans une variable et ensuite l'envoyer à la vue.
Si vous avez besoin d'appeler une bibliothèque (et de ses fonctions) dans une vue, vous pouvez le faire:
Pour répondre à ce que vous faites mal, vous devez savoir que le CodeIgniter classe n'est pas déclaré dans la vue, et que c'est le cas pour une raison - à l'abstrait votre code PHP à partir de votre code HTML. Les points de vue devraient contenir un minimum de code PHP (base de boucles, conditions).
Avec cela à l'esprit, vous devez inclure votre bibliothèque normal dans le contrôleur comme suit;
contrôleur
Dans la vue, vous simple écho de données. Bien que CodeIgniter permet à court de main balises, vous devez utiliser les balises PHP pour garder à une convention qui permettra de travailler n'importe où vous gardez votre code.
vue
Note le should: CodeIgniter est souple en ce qu'il permet de faire des choses dans le mauvais sens. Il fait juste un peu plus difficile. Vous pouvez faire presque tout dans la vue, même lorsque vous ne devriez pas; mais le chargement des aides, des modèles et des points de vue qui doit être fait dans le contrôleur.
Que c'est une mauvaise approche MVC. Vous n'avez pas besoin de charger la bibliothèque dans la vue, parce que tous les points de vue sont chargés à partir d'un CONTRÔLEUR, de sorte que chaque externe Helper ou de la Bibliothèque doit être chargé à partir du contrôleur et de l'utiliser ou l'envoyer à la vue
Ce qui concerne,
Pedro
Vous pouvez charger automatiquement la bibliothèque dans
config/autoload.php
Alors vous pouvez simplement appeler les fonctions de votre point de vue .
Cela a été utile pour moi quand j'étais en train de créer un menu dynamique en-tête . j'ai auto-chargement de la bibliothèque qui a la fonction de dynamique de création de menu et puis j'ai appelé tout simplement que la fonction de la vue , par la façon dont elle est une mauvaise pratique .
Dans le contrôleur ou l'utilisation du modèle
et que dans les vues, vous pouvez utiliser la bibliothèque directement:
Ce n'est pas MVC comme solution mais fonctionne si vous avez besoin d'.
Il suffit de charger la bibliothèque du contrôleur, puis utiliser la vue.
Contrôleur:
Vue: