Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MVC - zmiany na danych
Forum PHP.pl > Forum > PHP
duszek
Witam,

W związku że chce się trzymać pewnych zasad programowania, tak aby żyć w zgodzie z społeczeństwem programistów postanowiłem siąść do MVC, jednak napotykam jeden problem w logice gdzie pojawia się temat dotyczący operacji mających na celu wprowadzenia zmian np. w bazie danych.

Całość rozumiem, a dokładnie to że kontroler w sytuacji chęci wyświetlenia danych przesyła konkretne wartości do widoku, gdzie ten zwraca pobrane dane do kontrolera, który z kolei otrzymaną wartość kieruje końcowi do widoku, gdzie ten pokazuje nam np. HTML - i super, bo fajne jest to że to w widoku mogę skompletować zapytania dla poszczególnych tabel czy grup tabel.

Problem jednak pojawia się gdy mam dokonać zmian na np. bazie danych, bo zrozumiałem to tak że to kontroler odpowiada za to czyli w pewnym sensie przetrzymuje zapytania bazy danych które mają wprowadzić zmiany i ewentualnie może ruszyć do działania model oraz widok do wyświetlenia wyniku --- i tutaj zapewne źle myślę i prosiłbym, aby ktoś mi to wytłumaczył, jak to jest tutaj. Dlaczego mam wątpliwości na tym etapie? a to z tego względu że jeżeli MVC sprytnie rozdziela zapytania SQL do bazy danych w modelu, tak aby było można wskazane modele przenosić, to logicznie powinno się to tyczyć zapytań odpowiadających z wprowadzanie zmian...

Będę wdzięczny za wyjaśnienie mi tej części MVC smile.gif
Pyton_000
Model to warstwa danych. może być dowolna.
Kontroler steruje zachowaniem.
Widok prezentuje dane.

Ogólnie nie ma narzuconego żadnego mechanizmu na poszczególne warstwy. Model może być plikiem, bazką, jakimś storage w pamięci.
Widok tak samo może być czynm kolwiek od koncoli po pliki pdf czy html.

Zasada jest z grubsza taka że wywołujesz odpowiednią akcję kontrolera podczas requestu. Jeśli masz pobrać dane to odwołujesz się do klasy która implementuje konkretny typ storage i wyciągasz dane. Potem te dane przekazujesz do widolku a widok buduje sobie coś.

Przy zapisie leci odwrotnie czyli w gotowym widoku wprowadzasz dane, lecą do kontrolera a ten z kolei odpala implementację modelu do zapisu.


To takie bardzo duże uproszczenie działania MVC
duszek
Cytat(Pyton_000 @ 17.04.2018, 14:01:58 ) *
Przy zapisie leci odwrotnie czyli w gotowym widoku wprowadzasz dane, lecą do kontrolera a ten z kolei odpala implementację modelu do zapisu.


OK, całość rozumiem, tylko o to, a dokładnie samą końcówkę mi chodzi zrozumieć smile.gif Czyli model też może przechowywać zapytania dotyczące zmian w np. bazie danych? chodzi może o miejsce podejmowanych czynności, bo myslałem że model odpowiada wyłącznie za wyciąganie danych a nie za ich modyfikację...
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.