CodeIgniter - acessando a variável $ config em vista


101

Quase sempre preciso acessar $configvariáveis ​​em visualizações. Eu sei que posso passá-los do controlador para load->view(). Mas parece excessivo fazê-lo explicitamente.

Existe alguma maneira ou truque para acessar a $configvariável de visualizações de CI sem perturbar os controladores com código sobressalente?

Respostas:


194

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

Por exemplo, se o arquivo de configuração contém $config['foo'] = 'bar';, em seguida,$this->config->item('foo') == 'bar'


boa resposta útil
Yagnesh bhalala

29

Além disso, a função Common funciona em config_item()quase todos os lugares da instância do CodeIgniter. Controladores, modelos, visualizações, bibliotecas, ajudantes, ganchos, o que for.


1
Obrigado por isso - eu estava tendo problemas para acessar um valor de configuração de um gancho. Para qualquer outra pessoa, isso funciona muito bem.
CashIsClay

1
Mas, config_item()não tem a proteção de colisão que está disponível em$this->config->item()
Ijas Ameenudeen

15

Você pode fazer algo assim:

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

3
Na verdade, em uma visão, $ this se refere a CI_Loader e get_instance () se refere a CI_Base () como sempre.
Phil Sturgeon

8

$this->config->item('config_var') não funcionou para o meu caso.

Eu só poderia usar o config_item('config_var');para ecoar variáveis ​​na visualização


4

Seu controlador deve coletar todas as informações de bancos de dados, configurações, etc. Existem muitos bons motivos para se ater a isso. Um bom motivo é que isso permitirá que você altere a fonte dessas informações com bastante facilidade e não terá que fazer nenhuma alteração em suas visualizações.


2

Sempre que preciso acessar variáveis ​​de configuração, costumo usar: $ this-> config-> config ['nome_variável'];


Não sei porque, mas desde hoje $ this-> config-> item ('var_name'); não funcionou mais para mim .. obrigado pelo caminho alternativo. apenas querendo saber .. este método é legal?
dapidmini

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

Se o seu arquivo de configuração também aparecer, você terá que acessar assim, por exemplo, eu incluo um app.php na pasta de configuração Eu tenho uma variável

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

Agora quero acessar meu controlador ou modelo.

Tente seguir dois casos, um deve funcionar

caso 1:

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

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

case2:

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

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

2

É assim que eu fiz. Em config.php

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

Em applications / view / header.php (assumindo o código html)

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

Exemplo de Título


1

$config['cricket'] = 'bat'; no arquivo config.php

$this->config->item('cricket') use isso em vista


0

Se você estiver tentando acessar a variável de configuração no controlador, use

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

Se você estiver tentando acessar a variável de configuração fora do controlador (auxiliar / ganchos), use

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

0

Exemplo, se você tiver:

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

definido em seu config.php então

echo base_url();

Isso funciona muito bem em quase todos os lugares.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.