CodeIgniter - accès à la variable $ config dans la vue


101

Assez souvent, j'ai besoin d'accéder aux $configvariables dans les vues. Je sais que je peux les transmettre du contrôleur à load->view(). Mais il semble excessif de le faire explicitement.

Existe-t-il un moyen ou une astuce pour accéder aux $configvariables des vues CI sans déranger les contrôleurs avec un code de rechange?

Réponses:


194

$this->config->item() fonctionne très bien.

Par exemple, si le fichier de configuration contient $config['foo'] = 'bar';alors$this->config->item('foo') == 'bar'


belle réponse utile
Yagnesh bhalala

29

En outre, la fonction Common fonctionne à config_item()peu près partout dans l'instance CodeIgniter. Contrôleurs, modèles, vues, bibliothèques, helpers, hooks, peu importe.


1
Merci pour cela - j'avais du mal à accéder à une valeur de configuration à partir d'un hook. Pour n'importe qui d'autre, cela fonctionne très bien.
CashIsClay

1
Mais, config_item()n'a pas la protection contre les collisions qui est disponible dans$this->config->item()
Ijas Ameenudeen

15

Vous pouvez faire quelque chose comme ça:

$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');

3
Dans une vue, $ this fait référence à CI_Loader et get_instance () fait référence à CI_Base () comme toujours.
Phil Sturgeon

8

$this->config->item('config_var') n'a pas fonctionné pour mon cas.

Je ne pouvais utiliser que les config_item('config_var');variables d'écho dans la vue


4

Votre contrôleur doit collecter toutes les informations des bases de données, des configurations, etc. Il existe de nombreuses bonnes raisons de s'en tenir à cela. Une bonne raison est que cela vous permettra de changer la source de ces informations assez facilement et de ne pas avoir à modifier vos vues.


2

Chaque fois que j'ai besoin d'accéder aux variables de configuration, j'ai tendance à utiliser: $ this-> config-> config ['variable_name'];


Je ne sais pas pourquoi mais depuis aujourd'hui $ this-> config-> item ('var_name'); ne fonctionnait plus pour moi .. merci pour la manière alternative. je me demande juste .. est-ce que cette méthode est légale?
dapidmini

2
echo $this->config->config['ur config file'] 

Si votre fichier de configuration vient également à l'image, vous devez accéder comme ceci par exemple, j'inclus un app.php dans le dossier de configuration j'ai une variable

$config['50001'] = "your  message"   

Maintenant, je veux accéder à mon contrôleur ou à mon modèle.

Essayez de suivre deux cas, l'un devrait fonctionner

cas 1:

$msg = $this->config->item('ur config file');

echo $msg['50001'];    //out put:  "your message";

cas2:

 $msg = $this->config->item('50001');

 echo $msg;    //out put:  "your message"

2

Voilà comment je l'ai fait. Dans config.php

$config['HTML_TITLE'] = "SO TITLE test";

Dans applications / view / header.php (en supposant le code html)

<title><?=$this->config->item("HTML_TITLE");?> </title>

Exemple de titre


1

$config['cricket'] = 'bat'; dans le fichier config.php

$this->config->item('cricket') utiliser ceci en vue


0

Si vous essayez d'accéder à la variable de configuration dans le contrôleur, utilisez

$this->config->item('{variable name which you define into config}');

Si vous essayez d'accéder à la variable de configuration en dehors du contrôleur (helper / hooks), utilisez

$mms = get_instance();  
$mms->config->item('{variable which you define into config}');

0

Exemple, si vous avez:

$config['base_url'] = 'www.example.com'

mis dans votre config.php puis

echo base_url();

Cela fonctionne très bien presque partout.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.