J'ai besoin de boucler beaucoup de tableaux de différentes manières et de les afficher dans une page. Les tableaux sont générés par une classe de module. Je sais qu'il vaut mieux ne pas inclure de fonctions sur les «vues» et je veux savoir où insérer le fichier de fonctions.
Je sais que je peux «étendre» les aides, mais je ne veux pas étendre une aide. Je veux en quelque sorte créer un assistant avec mes fonctions de boucle. Appelons-le loops_helper.php
php
codeigniter
codeigniter-helpers
Jonathan
la source
la source
Réponses:
Un assistant CodeIgniter est un fichier PHP avec plusieurs fonctions. Ce n'est pas une classe
Créez un fichier et mettez-y le code suivant.
Enregistrez-le dans application / helpers / . Nous l'appellerons "new_helper.php"
La première ligne existe pour s'assurer que le fichier ne peut pas être inclus et exécuté en dehors de la portée de CodeIgniter. Tout après cela est explicite.
Utilisation de l'assistant
Cela peut être dans votre contrôleur , modèle ou vue (pas préférable)
Si vous utilisez cet assistant dans de nombreux endroits, vous pouvez le charger automatiquement en l'ajoutant au fichier de configuration de chargement automatique, c'est-à-dire
<your-web-app>\application\config\autoload.php
.-Mathew
la source
$this
tant que propriété de celle-ci ... Tout si vous le souhaitez bien sûr.cool_helper
) et, si vous oubliez cela et appelez manuellement$this->load->helper('cool_helper')
après qu'il a été chargé automatiquement, vous obtiendrez une erreur PHP "déjà définie" ou quelque chose. Cela évite de charger le même code deux fois (c'est quelque chose comme lainclude_once()
fonction PHP mais pour les helpers CodeIgniter, pour éviter les problèmes). En gros, traduire un peu: si la fonction n'existe pas, cela signifie que l'assistant n'a pas été chargé auparavant. Définissons-le.Un peu de code qui vous permet d'utiliser l'instance CI à l'intérieur de l'assistant:
la source
Eh bien, pour moi, cela ne fonctionne qu'en ajoutant le texte
"_helper"
après dans le fichier php comme:Et pour charger automatiquement l'assistant dans l'application du dossier -> fichier autoload.php ajoutez dans l'assistant tableau le nom sans "_helper" comme:
Et avec ça je peux utiliser toutes les fonctions de l'assistant
la source
_helper
à la fin du nom de fichier.Pour créer un nouvel assistant, vous pouvez suivre les instructions de The Pixel Developer , mais mon conseil n'est pas de créer un assistant uniquement pour la logique requise par une partie particulière d'une application particulière. À la place, utilisez cette logique dans le contrôleur pour définir les baies sur leurs valeurs finales prévues. Une fois que vous avez cela, vous les transmettez à la vue à l'aide de la classe d'analyseur de modèle et (espérons-le) vous pouvez garder la vue propre de tout ce qui ressemble à PHP en utilisant des variables simples ou des paires de balises variables au lieu d'échos et de foreachs. c'est à dire:
au lieu de
Un autre avantage de cette approche est que vous n'avez pas à vous soucier de l'ajout de l'instance CI comme vous le feriez si vous utilisiez des helpers personnalisés pour faire tout le travail.
la source
Créez un fichier avec le nom de votre assistant dans / application / helpers et ajoutez-le au fichier de configuration de chargement automatique / chargez-le manuellement.
Par exemple, placez un fichier appelé user_helper.php dans / application / helpers avec ce contenu:
Vous pouvez maintenant charger l'assistant via
$this->load->helper(‘user’);
ou l'ajouter à la configuration application / config / autoload.php .la source
Définissez simplement un assistant dans le répertoire de l'aide d'application, puis appelez à partir de votre contrôleur juste le nom de la fonction comme
dans le contrôleur, chargez l'assistant
la sortie sera
la source
Pour récupérer un élément de votre fichier de configuration, utilisez la fonction suivante:
$this->config->item('item name');
Où le nom de l'élément est l'index du tableau $ config que vous souhaitez récupérer. Par exemple, pour récupérer votre choix de langue, procédez comme suit:$lang = $this->config->item('language');
La fonction renvoie FALSE (booléen) si l'élément que vous essayez d'extraire n'existe pas.Si vous utilisez le deuxième paramètre de la fonction $ this-> config-> load afin d'assigner vos éléments de configuration à un index spécifique, vous pouvez le récupérer en spécifiant le nom de l'index dans le deuxième paramètre de la $ this-> config- > fonction item (). Exemple:
// Charge un fichier de configuration nommé blog_settings.php et l'assigne à un index nommé "blog_settings"
// Récupère un élément de configuration nommé site_name contenu dans le tableau blog_settings
// Une autre manière de spécifier le même élément:
$ site_name = $ blog_config ['site_name'];
la source