2010-04-13 12 views
77

Molto spesso ho bisogno di accedere alle variabili $config nelle viste. So che posso passarli dal controller a load->view(). Ma sembra eccessivo farlo esplicitamente.

C'è qualche modo o trucco per accedere alla variabile $config da viste CI senza controller con codice di riserva?

risposta

164

$this->config->item() funziona bene.

Ad esempio, se il file di configurazione contiene $config['foo'] = 'bar'; poi $this->config->item('foo') == 'bar'

+47

Ad esempio, se c'è '$ config ['foo'] = 'bar';' nella configurazione usando '$ this-> config-> item ('foo')' sarà 'bar'. – Sasha

+0

Si prega di aggiungere sopra l'esempio per rispondere –

13

si può fare qualcosa di simile:

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

actualy in una vista $ si riferisce a CI_Loader e get_instance() si riferisce al CI_Base() come sempre. –

+0

funziona con Ocular Template Library –

1

Ogni volta che ho bisogno di accedere alle variabili di configurazione Io tendo ad usare: $ this-> config-> config [ 'nome_variabile'];

3

Il controller deve raccogliere tutte le informazioni da database, configurazioni, ecc. Ci sono molti buoni motivi per attenersi a questo. Una buona ragione è che questo ti permetterà di cambiare la fonte di tali informazioni abbastanza facilmente e di non dover apportare alcuna modifica alle tue visualizzazioni.

25

Inoltre, la funzione Comune config_item() funziona praticamente ovunque nell'istanza CodeIgniter. Controller, modelli, viste, librerie, helper, hook, qualunque cosa.

+1

Grazie per questo - Ho avuto problemi ad accedere a un valore di configurazione da un gancio. Per chiunque altro, funziona alla grande. – CashIsClay

+0

Ma, 'config_item()' non ha la protezione di collisione che è disponibile in '$ this-> config-> item()' – IJas

8

$this->config->item('config_var') non ha funzionato per il mio caso.

ho potuto utilizzare solo il config_item('config_var'); a risuonare le variabili nella vista

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

Se il file di configurazione anche venire a immagine devi accedere così per esempio ho includere un app.php nella cartella config ho una variabile

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

Ora voglio accedere al mio controller o modello.

prova a seguire due casi si dovrebbe lavorare

case1:

$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" 
0

$config['cricket'] = 'bat'; nel file config.php

$this->config->item('cricket') utilizzare questo in vista

1

Questo è come l'ho fatto. In config.php

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

In applicazioni/vista/intestazione.php (supponendo codice html)

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

Example of Title

Problemi correlati