Muszę zapętlać wiele tablic na różne sposoby i wyświetlać je na stronie. Tablice są generowane przez klasę modułów. Wiem, że lepiej nie włączać funkcji do „widoków” i chcę wiedzieć, gdzie wstawić plik funkcji.
Wiem, że mogę „rozszerzyć” pomocników, ale nie chcę przedłużać pomocnika. Chcę stworzyć pomocnika z moimi funkcjami pętli. Nazwijmy go loops_helper.php
php
codeigniter
codeigniter-helpers
Jonathan
źródło
źródło
Odpowiedzi:
Pomocnik CodeIgniter to plik PHP z wieloma funkcjami. To nie jest klasa
Utwórz plik i umieść w nim następujący kod.
Zapisz to w aplikacji / helpers / . Nazwiemy to „new_helper.php”
Pierwszy wiersz istnieje, aby upewnić się, że plik nie może zostać dołączony i uruchomiony poza zakresem CodeIgniter. Wszystko po tym jest oczywiste.
Korzystanie z pomocnika
Może to być w twoim kontrolerze , modelu lub widoku (nie preferowane)
Jeśli korzystasz z tego pomocnika w wielu lokalizacjach, możesz go załadować automatycznie, dodając go do pliku konfiguracyjnego automatycznego ładowania, tj
<your-web-app>\application\config\autoload.php
.-Mathew
źródło
$this
jako właściwość ... Wszystko, jeśli chcesz.cool_helper
), a jeśli go zapomnisz i zadzwoń ręcznie$this->load->helper('cool_helper')
po jego automatycznym załadowaniu, otrzymasz błąd „już zdefiniowany” PHP lub coś takiego. Zapobiega to dwukrotnemu załadowaniu tego samego kodu (jest to coś w rodzajuinclude_once()
funkcji PHP, ale dla pomocników CodeIgniter, aby uniknąć problemów). Zasadniczo, tłumacząc trochę: jeśli funkcja nie istnieje, oznacza to, że pomocnik nie był wcześniej ładowany. Zdefiniujmy to.Niektóre kody, które pozwalają na użycie instancji CI wewnątrz pomocnika:
źródło
Cóż, dla mnie działa tylko dodawanie tekstu
"_helper"
po w pliku php, takiego jak:Aby automatycznie załadować pomocnika do aplikacji folderu -> plik autoload.php dodaj do pomocnika tablicy nazwę bez „_helper”, np .:
I dzięki temu mogę korzystać ze wszystkich funkcji pomocnika
źródło
_helper
na końcu nazwy pliku.Aby utworzyć nowego pomocnika, możesz postępować zgodnie z instrukcjami od The Pixel Developer , ale moja rada nie polega na stworzeniu pomocnika tylko dla logiki wymaganej przez określoną część konkretnej aplikacji. Zamiast tego użyj tej logiki w kontrolerze, aby ustawić tablice na ich ostateczne zamierzone wartości. Gdy to osiągniesz, przekazujesz je do widoku za pomocą klasy parsera szablonów i (mam nadzieję) możesz utrzymać widok czysty od wszystkiego, co wygląda jak PHP, używając prostych zmiennych lub par znaczników zmiennych zamiast echa i foreach. to znaczy:
zamiast
Inną korzyścią z tego podejścia jest to, że nie musisz się martwić o dodanie instancji CI, tak jak gdybyś używał niestandardowych pomocników do wykonania całej pracy.
źródło
Utwórz plik o nazwie pomocnika w / application / helpers i dodaj go do pliku konfiguracyjnego autoload / załaduj go ręcznie.
Np. Umieść plik o nazwie user_helper.php w / application / helpers z tą zawartością:
Teraz możesz albo załadować pomocnika za pomocą,
$this->load->helper(‘user’);
albo dodać go do application / config / autoload.php config.źródło
Wystarczy zdefiniować pomocnika w katalogu pomocnika aplikacji, a następnie wywołać z kontrolera po prostu nazwę funkcji jak
w sterowniku załaduj pomocnika
wyjście będzie
źródło
Aby pobrać element z pliku konfiguracyjnego, użyj następującej funkcji:
$this->config->item('item name');
Gdzie nazwa elementu to indeks tablicy $ config, który chcesz pobrać. Na przykład, aby pobrać wybrany język, wykonaj następujące czynności:$lang = $this->config->item('language');
Funkcja zwraca FALSE (boolean), jeśli element, który próbujesz pobrać, nie istnieje.Jeśli używasz drugiego parametru funkcji $ this-> config-> load w celu przypisania elementów konfiguracji do określonego indeksu, możesz go odzyskać, podając nazwę indeksu w drugim parametrze $ this-> config- > funkcja item (). Przykład:
// Ładuje plik konfiguracyjny o nazwie blog_settings.php i przypisuje go do indeksu o nazwie „blog_settings”
// Pobierz element konfiguracji o nazwie nazwa_strony zawarty w tablicy blog_settings
// Alternatywny sposób określenia tego samego elementu:
$ site_name = $ blog_config ['site_name'];
źródło