Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Rozkład metod w kontrolerze
pabito
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 4
Dołączył: 14.05.2013

Ostrzeżenie: (0%)
-----


Witam

Zastanawiam się jak rozmieszczać poprawnie metody w kontrolerze. Mam swój sposób, który stosuje od dawna lecz nie jestem do niego przekonany.
Załóżmy, że chcę dodać nowego użytkownika, wykorzystując kontoler User.
Dalsze wyjaśnienia w komentarzu
  1.  
  2. class User extends Controller{
  3.  
  4. add(){
  5. //tutaj jest metoda add, ładuje ona odpowiedni widok z formularzem
  6. //zajmuje się ona tylko załadowaniem widoku
  7.  
  8. //w formularzu action='addUser', czyli formularz wysyłany jest do poniższej metody
  9. }
  10.  
  11. addUser(){
  12. //tutaj zostaja wyslane dane z formluarza
  13. //nastepuje tutaj walidacja i jezeli jest okej jest tworzony obiekt modelu User ii wywolana metoda add()l
  14. $dane='xx'; //jakies dane z formularza
  15. $Model_User->add($dane);
  16. //powyżej zostaje dodany user do bazy
  17. }
  18. }


czy taka konwencja jest poprawna?
że jest osobna metoda na załadowanie widoku?
Bo teraz chcąc dodać usera muszę stworzyć dwie metody pierwsza-ładuje widok, druga-wysyła dane do modelu

Ten post edytował pabito 13.06.2013, 12:21:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kopecsrk
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 30.04.2013

Ostrzeżenie: (0%)
-----


ja bym zrobił tak:

  1. class User extends Controller{
  2.  
  3. public function actionCreate() { // akcja tworząca użytkownika
  4.  
  5. $model = new User; // model user
  6.  
  7. if (isset($_POST['formualarz'])) { // jeżeli pobierze wartości to wykona dalszy skrypt
  8. $model->attributes = $_POST['Formularz']; // zapisuje wartości z postu
  9.  
  10. if($model->validate()){ // walidujesz model
  11. $model->save(); // jeżeli zwaliduje to zapisuje
  12. $this->redirect (); // i wyświetla widok
  13. }
  14.  
  15. }
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 16:56