Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MVC] Warunkowe wyświetlanie danych
Forum PHP.pl > Forum > PHP > Object-oriented programming
Vasquez21
Witam wszystkich,

Na początek tylko informuję, że przejrzałem sporo wątków na forum, ale nadal nie znam odpowiedzi, a chciałbym od początku zabawy z MVC podążać w dobrym kierunku.

Struktura u mnie wygląda mniej więcej tak:
MODEL:
  1. class Table_Model
  2. {
  3. private $db;
  4.  
  5. public function __construct()
  6. {
  7. $this->db = new MysqlImproved_Driver;
  8. }
  9.  
  10. public function get_table_status($idTable)
  11. {
  12. //jakiś kod
  13. }
  14.  
  15. }


KONTROLER:
  1. class Table_Controller
  2. {
  3. public function main(array $getVars)
  4. {
  5. $table_Model = new Table_Model();
  6.  
  7. $status = $table_Model->get_table_status($_GET['id']);
  8. $master = new View_Model('table');
  9. $master->assign('status' , $status);
  10.  
  11. $master->render();
  12. }
  13. }


WIDOK:
  1. kod html :)


I teraz pojawiło mi się bardzo proste pytanko. Mianowicie jak prawidłowo powinienem obsłużyć taką sytuację, że zależnie np. od tego co zwróci status chciałbym pewną część strony załadować z inną wartością.
Dla przykładu powiedzmy, że jeżeli status = 1 to oznacza to, że user jest zalogowany i chcemy wyświetlić jakieś powitanie, jeżeli status != 1 to wyświetlamy okienko logowania. 95% strony pozostaje bez zmian.
Ale teraz czy powinienem stworzyć osobny plik z widokiem dla opcji pierwszej i opcji drugiej i zależnie od tego jaki był wynik wywoływać albo jedną albo drugą? Czy może powinienem to jakoś inaczej rozwiązać?
Rozumiem, że wszystko sobie sprawdzam w kontrolerze, ale zakładając że 90% kodu html będzie bez zmian, a tylko ten mały fragment może się zmienić to
nospor
Skoro do widoku przypisujesz status, to i w widoku zrób warunek: jak to to wyswietlaj to, a jak tamto to wyswietlaj tamto
Vasquez21
tutaj akurat przypisałem bo i tak chciałem jeszcze w jednym miejscu wyświetlić wartość statusu.

W każdym razie mam rozumieć, że nie ma nic złego w sprawdzaniu już wewnątrz widoku tego jakie mamy dane i reagowaniu na nie?
Wydawało mi się, że należy tego unikać bo nagle wszystko się znów zaczyna zlewać smile.gif
destroyerr
Cytat
Wydawało mi się, że należy tego unikać bo nagle wszystko się znów zaczyna zlewać

To zależy czy masz na myśli widok czy też szablon.
nospor
Cytat
Wydawało mi się, że należy tego unikać bo nagle wszystko się znów zaczyna zlewać
Nie popadajmy w paranoje. Po to w widoku możesz używać IFów by ich używać smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.