CodeIgniter - accediendo a la variable $ config a la vista

101

Muy a menudo necesito acceder a $configvariables en las vistas. Sé que puedo pasarlos de controlador a load->view(). Pero parece excesivo hacerlo explícitamente.

¿Hay alguna forma o truco para acceder a la $configvariable desde las vistas de CI sin molestar a los controladores con código de repuesto?

AlexA
fuente

Respuestas:

194

$this->config->item() funciona bien.

Por ejemplo, si el archivo de configuración contiene $config['foo'] = 'bar';entonces$this->config->item('foo') == 'bar'

Phil Sturgeon
fuente
buena respuesta útil
Yagnesh bhalala
29

Además, la función Common funciona config_item()prácticamente en todas partes de la instancia de CodeIgniter. Controladores, modelos, vistas, bibliotecas, ayudantes, ganchos, lo que sea.

Phil Sturgeon
fuente
1
Gracias por esto, estaba teniendo problemas para acceder a un valor de configuración desde un gancho. Para cualquier otra persona, esto funciona muy bien.
CashIsClay
1
Pero config_item()no tiene la protección contra colisiones que está disponible en$this->config->item()
Ijas Ameenudeen
15

Puedes hacer algo como eso:

$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');
Alexey Shein
fuente
3
Actualmente, dentro de una vista $, esto se refiere a CI_Loader y get_instance () se refiere a CI_Base () como siempre.
Phil Sturgeon
8

$this->config->item('config_var') no funcionó para mi caso.

Solo pude usar las config_item('config_var');variables para hacer eco en la vista

usuario1002232
fuente
4

Su controlador debe recopilar toda la información de bases de datos, configuraciones, etc. Hay muchas buenas razones para ceñirse a esto. Una buena razón es que esto le permitirá cambiar la fuente de esa información con bastante facilidad y no tendrá que realizar ningún cambio en sus vistas.

Utah_Dave
fuente
2

Siempre que necesito acceder a las variables de configuración, suelo usar: $ this-> config-> config ['variable_name'];

El laboratorio del sitio web
fuente
No sé por qué, pero desde hoy $ this-> config-> item ('var_name'); ya no funcionó para mí .. gracias por la forma alternativa. sólo me preguntaba ... ¿es legal este método?
dapidmini
2
echo $this->config->config['ur config file'] 

Si su archivo de configuración también aparece en la imagen, debe acceder así, por ejemplo, incluyo un app.php en la carpeta de configuración, tengo una variable

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

Ahora quiero acceso en mi controlador o modelo.

Intente seguir dos casos, uno debería funcionar

caso 1:

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

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

caso2:

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

 echo $msg;    //out put:  "your message"
krishna_coolsofty
fuente
2

Así es como lo hice. En config.php

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

En aplicaciones / view / header.php (asumiendo código html)

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

Ejemplo de título

Fangstar
fuente
1

$config['cricket'] = 'bat'; en el archivo config.php

$this->config->item('cricket') usa esto en vista

Almiar
fuente
0

Si está intentando acceder a la variable de configuración en el controlador, utilice

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

Si está intentando acceder a la variable de configuración fuera del controlador (ayudante / ganchos), utilice

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

Ejemplo, si tiene:

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

establecer en su config.php entonces

echo base_url();

Esto funciona muy bien en casi todos los lugares.

rahim.nagori
fuente