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?

AlexA
fonte

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'

Phil Sturgeon
fonte
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.

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

user1002232
fonte
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.

Utah_Dave
fonte
2

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

O site-lab
fonte
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"
krishna_coolsofty
fonte
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

fangstar
fonte
1

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

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

Rick
fonte
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}');
Mannu saraswat
fonte
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.

rahim.nagori
fonte