Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]MVC, jak umieścić formularz
Forum PHP.pl > Forum > Przedszkole
wpaski
Witam, zastanwiam się jak rozplanować kwestię formularza mianowicie chodzi mi o to że jest jakaś klasa formularza, i teraz gdzie mam umieścić np taki kod:
  1. $form = new Form();
  2. $form ->post('name')
  3. ->val('minlength', 2)
  4.  
  5. ->post('age')
  6. ->val('minlength', 2)
  7. ->val('digit')
  8. ->post('gender');
  9. $form ->submit();


Czy może on być w kontrolerze, czy jednak w modelu? model odpowiada za pobieranie danych z np. bazy,a tutaj pobieramy dane od użytkownika jednak czy można wywoływać tak jak powyżej formularz(obiekt) w modelu? jeśli nie tam no to gdzie? mógłby mi ktoś rozjaśnić nieco sprawę?
Posio
kontroler, i tak musisz to puścić do widoku.
Crozin
1. Model to nie tylko pobieranie danych z bazy danych.
2. Formularz (w kontekście jaki pokazałeś w pierwszym poście) ma za zadanie jedynie przekształcenie jednych danych (parametrów przesłanych żądaniem HTTP) w inne (obiekt(y)) oraz ewentualnie sprawdzić poprawność tych danych.
3. W MVC (czy innych jego wariantach) nie wszystko musi znajdować się w którejś z warstw. Jednak definicja formularza, ktrórą podałeś wymaga znajomości modelu danych stąd kod ten zaliczać się będzie do modelu i nie powinien znajdować się w kontrolerze.
thek
Jak już wspomniał Crozin, model to nie tylko pobieranie czy zwracanie danych ze źródła jakiegoś (w końcu nie tylko baza jest nim). Model odpowiada także choćby za obróbkę danych. czy ich przekształcanie. Stąd choćby w Symfony i innych frameworkach klasy repozytoriów powiązane są z klasami encji i tym samym z warstwą modelu. Choć faktycznie granica w części przypadków jest płynna i w niektórych przypadkach (przykładowo microframeworkach) granica ta się lekko zaciera na rzecz zwięzłości (definicja routes wprost w głównym pliku aplikacji - zaznaczam, że pomijam tu ControllerProvidery dla uproszczenia).
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.