![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 743 Pomógł: 0 Dołączył: 11.11.2003 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Witam,
znów mam problem z zaplanowaniem przepływu wszystkich danych w aplikacji. Wedle poprzednich podpowiedzi, które uzyskałem na forum zrobiłem tak (na przykładzie dodawania newsa): NewsModel.php
NewsController.php
No i niby wszystko dziala ladnie, mam kontroler ktory przekazuje dane do modelu, model te dane zapisuje i wszystko jest good. Ale teraz gdy planuję dodać nową kolumnę w bazie danych, muszę modyfikować Model, wszystkie kontrolery które uzyły danego Modelu. Dodatkowo jeśli gdzieś nie zmienię kontrolera to np. content zapisze mi sie jako title, bo zmieni sie kolejnosc zmiennych wchodzących do funkcji i wszystko sie pokrzaczy. Dobrze to robię, twrząc dla każdego zadania nową funkcję w modelu i przekazując do niej dane jako parametry funkcji? I też pytanie czy to nie jest bez sensu takie duplikowanie wielu funkcji które dostarcza mi ORM Propel. Np. żeby pobrać newsa o danym id, napisąłem funkcję w modelu:
Ale przecież równie dobrze mogłem od razu w kontrolerze pobrać newsa za pomocą funkcji dostarczonych przez ORM:
Jakie mam korzyści z przerzucania zadań do modelu. Nie dodaję sobie tym zbędnej pracy, pisząc masę metod które w sumie już posiadam? Ten post edytował Kuziu 14.02.2011, 12:20:02 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 743 Pomógł: 0 Dołączył: 11.11.2003 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Kolejny raz dzięki za odpowiedzi. Błędnie zapisałem ten kod.
Oczywiście mam instancję klasy UserModel która jest singletonem i odwołuję się do niej jako do obiektu nie przez statyczną metodę. Ok czyli z odpowiedzi Crozin'a wynika że powinienem wywołać z kontrolera metodę Modelu i przekazać jej instancję user'a pobraną również z modelu, ale zostawiając sobie furtkę na wypadek chęci pobrania danych innego user'a. Na razie chyba wszystko kumam. Wielkie dzieki za rozjaśnienie sytuacji. ------------ EDIT ----------- A więc jednak trochę źle myślę bo ja przekazuję do modelu instancję User'a i zdjęcia zamiast pobrać aktualnego user'a i jemu zapisać fotkę. Ale to znów trochę się kłóci z tym o czym wcześniej mówiliśmy, by wszystko przechodziło przez model. Teraz wykonując:
Znów nie operuję na modelu tylko na instancji klasy będącej reprezentacją wpisu w MySQLu którą reprezentuje Propel swoją klasą User. :| To już nie kumam czy robić wszystko przez model czy nie :| Ten post edytował Kuziu 16.02.2011, 19:51:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 19:41 |