Dość często potrzebuję dostępu do $config
zmiennych 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 $config
zmiennej z widoków CI bez zakłócania pracy kontrolerów zapasowym kodem?
php
codeigniter
AlexA
źródło
źródło
Ponadto funkcja Common
config_item()
działa prawie wszędzie w całej instancji CodeIgniter. Kontrolery, modele, widoki, biblioteki, pomocniki, hooki, cokolwiek.źródło
config_item()
nie ma ochrony przed kolizją, która jest dostępna w$this->config->item()
Możesz zrobić coś takiego:
źródło
$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źródło
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.
źródło
Zawsze, gdy potrzebuję dostępu do zmiennych konfiguracyjnych, zwykle używam: $ this-> config-> config ['nazwa_zmiennej'];
źródło
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ą
Teraz chcę mieć dostęp do mojego kontrolera lub modelu.
Spróbuj wykonać dwa przypadki, w których jeden powinien działać
przypadek 1:
przypadek2:
źródło
Tak to zrobiłem. W config.php
W aplikacjach / view / header.php (zakładając kod html)
źródło
$config['cricket'] = 'bat';
w pliku config.php$this->config->item('cricket')
użyj tego w widokuźródło
Jeśli próbujesz uzyskać dostęp do zmiennej konfiguracyjnej w kontrolerze, użyj
Jeśli próbujesz uzyskać dostęp do zmiennej konfiguracyjnej poza kontrolerem (helper / hooks), użyj
źródło
Przykład, jeśli masz:
ustawiona w config.php następnie
Działa to bardzo dobrze prawie w każdym miejscu.
źródło