CodeIgniter - Zugriff auf die Variable $ config in der Ansicht

101

Ziemlich oft muss ich auf $configVariablen in Ansichten zugreifen . Ich weiß, dass ich sie vom Controller an weitergeben kann load->view(). Aber es scheint übertrieben, es explizit zu tun.

Gibt es eine Möglichkeit oder einen Trick, $configaus CI-Ansichten auf Variablen zuzugreifen , ohne die Controller mit Ersatzcode zu stören?

AlexA
quelle

Antworten:

194

$this->config->item() funktioniert gut.

Zum Beispiel, wenn die Konfigurationsdatei $config['foo'] = 'bar';dann enthält$this->config->item('foo') == 'bar'

Phil Sturgeon
quelle
nette hilfreiche Antwort
Yagnesh bhalala
29

Außerdem funktioniert die Common-Funktion config_item()praktisch überall in der CodeIgniter-Instanz. Controller, Modelle, Ansichten, Bibliotheken, Helfer, Hooks, was auch immer.

Phil Sturgeon
quelle
1
Vielen Dank dafür. Ich hatte Probleme, über einen Hook auf einen Konfigurationswert zuzugreifen. Für alle anderen funktioniert das großartig.
CashIsClay
1
Aber config_item()hat nicht den Kollisionsschutz, der in verfügbar ist$this->config->item()
Ijas Ameenudeen
15

Sie können so etwas tun:

$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');
Alexey Shein
quelle
3
Tatsächlich bezieht sich dies innerhalb einer Ansicht $ auf CI_Loader und get_instance () wie immer auf CI_Base ().
Phil Sturgeon
8

$this->config->item('config_var') hat für meinen Fall nicht funktioniert.

Ich konnte nur die config_item('config_var');Echo-Variablen in der Ansicht verwenden

user1002232
quelle
4

Ihr Controller sollte alle Informationen aus Datenbanken, Konfigurationen usw. sammeln. Es gibt viele gute Gründe, sich daran zu halten. Ein guter Grund ist, dass Sie auf diese Weise die Quelle dieser Informationen ganz einfach ändern können und keine Änderungen an Ihren Ansichten vornehmen müssen.

Utah_Dave
quelle
2

Wann immer ich auf Konfigurationsvariablen zugreifen muss, verwende ich normalerweise: $ this-> config-> config ['Variablenname'];

Das Website-Labor
quelle
Ich weiß nicht warum, aber seit heute $ this-> config-> item ('var_name'); hat bei mir nicht mehr funktioniert .. danke für den alternativen weg. Ich frage mich nur ... ist diese Methode legal?
Dapidmini
2
echo $this->config->config['ur config file'] 

Wenn Ihre Konfigurationsdatei auch ins Bild kommt, müssen Sie wie folgt darauf zugreifen. Ich füge eine app.php in den Konfigurationsordner ein. Ich habe eine Variable

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

Jetzt möchte ich Zugriff in meinem Controller oder Modell.

Versuchen Sie, zwei Fälle zu befolgen, die funktionieren sollten

Fall 1:

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

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

Fall 2:

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

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

So habe ich es gemacht. In config.php

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

In application / view / header.php (unter der Annahme von HTML-Code)

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

Beispiel eines Titels

Fangstar
quelle
1

$config['cricket'] = 'bat'; in der Datei config.php

$this->config->item('cricket') Verwenden Sie dies in der Ansicht

Rick
quelle
0

Wenn Sie versuchen, auf die Konfigurationsvariable im Controller zuzugreifen, verwenden Sie diese

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

Wenn Sie versuchen, auf die Konfigurationsvariable außerhalb des Controllers (Helfer / Hooks) zuzugreifen, verwenden Sie

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

Beispiel, wenn Sie haben:

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

in Ihrem Set config.php dann

echo base_url();

Das funktioniert fast überall sehr gut.

rahim.nagori
quelle