Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MVC->widok czy dopuszczalne są operacje?
Forum PHP.pl > Forum > PHP
pain3hp
Pytanie z kategorii czysto teoretycznych, czy model aplikacji MVC dopuszcza w plikach widoku jakiekolwiek operacje, warunki, wybory, pętle itp?
batman
Tak
modern-web
To chyba oczywiste... w każdym razie dla niektórych.
pain3hp
jak widać nie dla wszystkich a przynajmniej dla tych którzy sie dopiero dostosowuja, myślałem że od tego jest kontroler czy model a widok moze jedynie korzystać z echa, dzieki za info
Mephistofeles
To jakbyś wtedy rozwiązał np. warunkowe wyświetlanie czegoś?
Crozin
Widok jest odpowiedzialny za całą logikę widoku (ustalanie sortowania danych, ilości danych na stronę itp. itd.) oraz ich wyświetlania. Widok to normalny kod + szablony.
pain3hp
Cytat
To jakbyś wtedy rozwiązał np. warunkowe wyświetlanie czegoś?

funkcja w modelu zwracająca stringa którego kontroler przypisze do zmiennej a ona wyświetli się w widoku, no cóż warunek bym zrobił ale pomysłu na pętlę już nie mam
Crozin
1. Model zwraca surowe dane w postaci tablic/obiektów (jeżeli mowa o typach złożonych), a nie gotowy już tekst do wyświetlenia.
2. To widok pobiera dane bezpośrednio z modelu (w MVC), a nie kontroler, który później miałby je przekazywać do widoku.
CuteOne
Cytat
funkcja w modelu zwracająca stringa którego kontroler przypisze do zmiennej a ona wyświetli się w widoku, no cóż warunek bym zrobił ale pomysłu na pętlę już nie mam


  1. $string = '';
  2. while($r = mysql_fetch_array($select)) {
  3.  
  4. $string .= '<tr><td>'.$r['id'].' bla bla bla</td></tr>';
  5. }
  6.  
  7. //a w widoku
  8.  
  9. echo $string;


^-^ oczywiście nie stosuj tego smile.gif
krowal
Tak smile.gif
skowron-line
Cytat(Crozin @ 20.12.2010, 20:37:03 ) *
2. To widok pobiera dane bezpośrednio z modelu (w MVC), a nie kontroler, który później miałby je przekazywać do widoku.

Pokaż przykładowy model.

A gdzie walidacja formularzy ?
Crozin
Cytat
Pokaż przykładowy model.
A co tu ma być?
  1. class MySuperFancyModelEntity {
  2. protected $data = array('title' => 'Hello World', 'content' => 'Lorem ipsum...');
  3.  
  4. public function getTitle() {
  5. return $this->data['title'];
  6. }
  7.  
  8. public function getContent() {
  9. return $this->data['content'];
  10. }
  11. }
Cytat
A gdzie walidacja formularzy ?
Tam gdzie jej miejsce - w modelu.
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.