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?

Antworten:


194

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

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


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.


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');

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


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.


2

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


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"

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


1

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

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


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}');

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.