[CodeIgniter]Codeigniter wyjaśnienie model |
[CodeIgniter]Codeigniter wyjaśnienie model |
26.02.2018, 16:57:04
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 31.10.2014 Ostrzeżenie: (0%) |
Witam, zacząłem swoją przygodę z Frameworkiem Codeigniter, jestem początkujący. Przejdę do sedna, jeśli mam kontroler i potrzebuje pobrać dane z Bazy Danych korzystam z modelu. Niby proste ale problem leży w tym że w książce którą się wspieram model nosi nazwę kontrolera i wszystkie funkcje są deklarowane tam np. pobierz kategorie() a w kolejnym kontrolerze znów jest to samo, czyli ta sama funkcja zapisana w innym modelu. Czy nie lepiej jest stworzyć ogólny model na przykład Database_Query gdzie będą tylko zapytania i zwracane wyniki ?
|
|
|
26.02.2018, 16:58:44
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) |
Nie, potem jak będziesz szukał metody która odpowiada za pobieranie kategorii to od razu będziesz wiedział do którego pliku zajrzeć.
Ew. pokaż kod. Ten post edytował markuz 26.02.2018, 16:59:10 -------------------- |
|
|
26.02.2018, 17:28:09
Post
#3
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 31.10.2014 Ostrzeżenie: (0%) |
Pozwolisz że zadam kolejne pytanie, otóż w Kontrolerze posiadam następujące metody: index - tu wywołuje za pomocą this pozostałe metody kontrolera(create_head,create_header, create_footer), create_head() - wywołuje widok odpowiedzialny za część strony head, create_header() - wywołuje kolejny widok zawierający kolejną cześć strony ... Czy taki podział ma sens ?
|
|
|
26.02.2018, 17:35:11
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) |
Pokaż kod.
-------------------- |
|
|
26.02.2018, 17:37:01
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 31.10.2014 Ostrzeżenie: (0%) |
Ten post edytował mateuszstr1994 26.02.2018, 17:37:21 |
|
|
26.02.2018, 17:39:02
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Cos przekombinowales. Kontroler nie powinien nic wiedziec o widokach a u ciebie az sie roi od ladowania roznych czesci widoku w kontrolerze. Kontroler co najwyzej powinien zaladowac widok danej akcji i to wszystko. Cala reszta po stronei widoku i jego szablonu
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
26.02.2018, 17:39:55
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) |
Ok, widzę, że dopiero zaczynasz z PHP. Taki podział nie ma sensu ponieważ będziesz miał bardzo dużo powtórzeń - dla każdego kontrolera będziesz musiał tworzyć te metody. Dowiedz się czym jest dziedziczenie i wydziel je do nadrzędnej klasy np. MyController.
-------------------- |
|
|
26.02.2018, 17:41:05
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Cytat Dowiedz się czym jest dziedziczenie Chyba raczej co to jest MVC i oddzielnie widoku od reszty. No nie powiedz mi ze CI tego nie wspiera?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
26.02.2018, 17:46:44
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) |
@nospor Jak pisałem w nim x lat temu to nie wspierał, teraz też widzę, że słabo ma z tymi widokami z docs. Możesz wczytać widok w widoku ale do tego nadrzędnego będzie trzeba przekazać wszystkie zmienne użyte w tym podrzędnym widoku.
Ja to rozwiązywałem własną metodą loadView w nadrzędnym kontrolerze która wczytyała nagłowek, stopkę itp. a w środku widok który chciałem. -------------------- |
|
|
26.02.2018, 17:56:59
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Niby jakis szablon mozna miec
https://code.tutsplus.com/tutorials/an-intr...iter--net-25648 a to tylko jedno z rozwiazan. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
26.02.2018, 19:26:39
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) |
Gdybym się uparł to mógłbym podpiąć jakieś symfonowe widoki razem z twigiem - ale autor działa na czystym CI i ma małą wiedzę jeszcze o PHP dlatego zaproponowałem dziedziczenie i wydzielenie tych metody do nadrzędnej klasy.
Ten post edytował markuz 26.02.2018, 19:39:58 -------------------- |
|
|
26.02.2018, 22:14:54
Post
#12
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 31.10.2014 Ostrzeżenie: (0%) |
Reasumując tworze kontroler o klasie np. Page, następnie ta klasa dziedziczy po CI_Controller a Kontroler odpowiedzialny za stronę główną, dziedziczy po klasie Page odpowiednie metody, dobrze rozumiem ?
Ten post edytował mateuszstr1994 26.02.2018, 22:17:28 |
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 11:37 |