CodeIgniter - accesso alla variabile $ config in vista


101

Abbastanza spesso ho bisogno di accedere alle $configvariabili nelle viste. So di poterli passare dal controller a load->view(). Ma sembra eccessivo farlo esplicitamente.

C'è un modo o un trucco per accedere alle $configvariabili dalle viste CI senza disturbare i controller con codice di riserva?

Risposte:


194

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

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


bella risposta utile
Yagnesh bhalala

29

Inoltre, la funzione Common funziona config_item()praticamente ovunque nell'istanza di 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 hook. Per chiunque altro, funziona benissimo.
CashIsClay

1
Ma config_item()non ha la protezione dalle collisioni disponibile in$this->config->item()
Ijas Ameenudeen

15

Puoi fare qualcosa del genere:

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

3
In realtà all'interno di una vista $ questo si riferisce a CI_Loader e get_instance () si riferisce a CI_Base () come sempre.
Phil Sturgeon

8

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

Potrei usare solo l' config_item('config_var');eco delle variabili nella vista


4

Il tuo controller dovrebbe raccogliere tutte le informazioni da database, configurazioni, ecc. Ci sono molte buone ragioni per attenersi a questo. Una buona ragione è che ciò ti consentirà di modificare la fonte di tali informazioni abbastanza facilmente e non dovrai apportare modifiche alle tue visualizzazioni.


2

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


Non so perché ma da oggi $ this-> config-> item ('var_name'); non ha funzionato più per me .. grazie per il modo alternativo. mi chiedo solo .. questo metodo è legale?
dapidmini

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

Se il tuo file di configurazione viene anche visualizzato in immagine devi accedere in questo modo, ad esempio includo un app.php nella cartella di configurazione Ho una variabile

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

Ora voglio l'accesso nel mio controller o modello.

Prova a seguire due casi, uno dovrebbe funzionare

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"

2

Ecco come l'ho fatto. In config.php

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

In applicazioni / view / header.php (assumendo codice html)

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

Esempio di titolo


1

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

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


0

Se stai cercando di accedere alla variabile di configurazione nel controller, usa

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

Se stai cercando di accedere alla variabile di configurazione all'esterno del controller (helper / hooks), usa

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

0

Esempio, se hai:

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

impostato nel tuo config.php quindi

echo base_url();

Funziona molto bene quasi ovunque.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.