CodeIgniter - dostęp do zmiennej $ config w widoku

101

Dość często potrzebuję dostępu do $configzmiennych w widokach. Wiem, że mogę przekazać je z kontrolera do load->view(). Ale jawne robienie tego wydaje się przesadą.

Czy jest jakiś sposób lub trik, aby uzyskać dostęp do $configzmiennej z widoków CI bez zakłócania pracy kontrolerów zapasowym kodem?

AlexA
źródło

Odpowiedzi:

194

$this->config->item() działa w porządku.

Na przykład, jeśli plik konfiguracyjny zawiera $config['foo'] = 'bar';wtedy$this->config->item('foo') == 'bar'

Phil Sturgeon
źródło
miła pomocna odpowiedź
Yagnesh bhalala
29

Ponadto funkcja Common config_item()działa prawie wszędzie w całej instancji CodeIgniter. Kontrolery, modele, widoki, biblioteki, pomocniki, hooki, cokolwiek.

Phil Sturgeon
źródło
1
Dzięki za to - miałem problem z uzyskaniem dostępu do wartości konfiguracyjnej z podpięcia. Dla każdego innego działa to świetnie.
CashIsClay
1
Ale config_item()nie ma ochrony przed kolizją, która jest dostępna w$this->config->item()
Ijas Ameenudeen
15

Możesz zrobić coś takiego:

$ci = get_instance(); // CI_Loader instance
$ci->load->config('email');
echo $ci->config->item('name');
Alexey Shein
źródło
3
W rzeczywistości w widoku $ this odnosi się do CI_Loader, a get_instance () jak zwykle do CI_Base ().
Phil Sturgeon
8

$this->config->item('config_var') nie działa w moim przypadku.

Mogłem używać tylko config_item('config_var');do wywoływania zmiennych w widoku

user1002232
źródło
4

Twój kontroler powinien zbierać wszystkie informacje z baz danych, konfiguracji itp. Jest wiele dobrych powodów, aby się tego trzymać. Jednym z dobrych powodów jest to, że pozwoli to dość łatwo zmienić źródło tych informacji i nie będzie musiało wprowadzać żadnych zmian w poglądach.

Utah_Dave
źródło
2

Zawsze, gdy potrzebuję dostępu do zmiennych konfiguracyjnych, zwykle używam: $ this-> config-> config ['nazwa_zmiennej'];

Witryna lab
źródło
Nie wiem dlaczego, ale od dziś $ this-> config-> item ('var_name'); już dla mnie nie zadziałało… dzięki za alternatywną drogę. tylko się zastanawiam… czy ta metoda jest legalna?
dapidmini
2
echo $this->config->config['ur config file'] 

Jeśli twój plik konfiguracyjny również pojawia się na obrazku, musisz uzyskać dostęp w ten sposób, na przykład Dołączam plik app.php do folderu konfiguracyjnego Mam zmienną

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

Teraz chcę mieć dostęp do mojego kontrolera lub modelu.

Spróbuj wykonać dwa przypadki, w których jeden powinien działać

przypadek 1:

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

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

przypadek2:

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

 echo $msg;    //out put:  "your message"
krishna_coolsofty
źródło
2

Tak to zrobiłem. W config.php

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

W aplikacjach / view / header.php (zakładając kod html)

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

Przykład tytułu

fangstar
źródło
1

$config['cricket'] = 'bat'; w pliku config.php

$this->config->item('cricket') użyj tego w widoku

Stóg
źródło
0

Jeśli próbujesz uzyskać dostęp do zmiennej konfiguracyjnej w kontrolerze, użyj

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

Jeśli próbujesz uzyskać dostęp do zmiennej konfiguracyjnej poza kontrolerem (helper / hooks), użyj

$mms = get_instance();  
$mms->config->item('{variable which you define into config}');
Mannu saraswat
źródło
0

Przykład, jeśli masz:

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

ustawiona w config.php następnie

echo base_url();

Działa to bardzo dobrze prawie w każdym miejscu.

rahim.nagori
źródło