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?

AlexA
la source

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'

Phil Sturgeon
la source
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.

Phil Sturgeon
la source
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');
Alexey Shein
la source
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

user1002232
la source
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.

Utah_Dave
la source
2

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

Le site-laboratoire
la source
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"
krishna_coolsofty
la source
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

fangstar
la source
1

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

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

Meule
la source
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}');
Mannu saraswat
la source
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.

rahim.nagori
la source