Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Jeden widok jedna akcja różne Validacje
Hostis
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.07.2007
Skąd: /home/skawina

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


Mam taki problem i nie moge zbytnio znaleść rozwiązania.

Mama rejestracje użytkowników i chce wykorzystać ten sam Widok i akcje do zapisu danych co jest do rejestracji żeby też mógł funkcjonować jako edycja dla poszczególnych użytkowników.

tylko nie wiem jak rozwiązać kwestie walidacji tego samego formularza.

mam plik update.yml
  1. <?php
  2. fillin:
  3. enabled: true
  4. param:
  5. name:  register
  6.  
  7. myExistValidator:
  8. class: existValidator
  9.  
  10. fields:
  11. login:
  12. required:
  13. msg: The name field cannot be left blank
  14. sfStringValidator:
  15. min: 3
  16. min_error: Login musi składać się minimalnie z 5 znaków
  17. max: 50
  18. max_error: Login może składać się maksymalnie z 50 znaków
  19. sfRegexValidator:
  20. match_error: Login musi zaczynać się i kończyć znakami alfanumerycznymi oraz może zawierać zn
    aki "._-"
  21. pattern: /^[a-zA-Z0-9]+([_.-]?[a-zA-Z0-9])*$/
  22. myExistValidator:
  23. login: true
  24. msg: Login istnieje w bazie danych
  25. password:
  26. required:
  27. msg: Pole hasła nie może być puste
  28. sfStringValidator:
  29. min: 5
  30. min_error: Hasło musi składać się minimalnie z 5 znaków
  31. max: 50
  32. max_error: Hasło może składać się maksymalnie z 50 znaków
  33. sfRegexValidator:
  34. match_error: Hasło może składać się wyłącznie ze znaków alfanumerycznych
  35. pattern: /^[a-zA-Z0-9]+$/
  36. compare_password:
  37. required:
  38. msg: Musisz potwierdzić swoje hasło
  39. sfCompareValidator:
  40. check: password
  41. compare_error: Hasła nie są takie same
  42. first_name:
  43. sfStringValidator:
  44. max: 50
  45. max_error: Imię może składać się maksymalnie z 50 znaków
  46. sfRegexValidator:
  47. match_error: Niepoprawne imię
  48. pattern: /^[a-zA-Z]+$/
  49. last_name:
  50. sfStringValidator:
  51. max: 50
  52. max_error: Nazwisko może składać się maksymalnie z 50 znaków
  53. sfRegexValidator:
  54. match_error: Niepoprawne nazwisko
  55. pattern: /^[a-zA-Z]+$/
  56. email:
  57. required:
  58. msg: Musisz podać adres e-mail
  59. sfStringValidator:
  60. min: 5
  61. min_error: Hasło musi składać się minimalnie z 5 znaków
  62. max: 50
  63. max_error: Hasło może składać się maksymalnie z 100 znaków
  64. sfEmailValidator:
  65. email_error: Podany adres email jest nieprawidłowy
  66. myExistValidator:
  67. email: true
  68. msg: Podany Email istnieje w bazie danych
  69. ?>


i teraz w widoku chce zrobić tak żeby wzależności od akcji formularze miały 2 nazwy ale nie wiem jak zrobić tak żeby update.yml walidował dane w zależności od tego jaka jest nazwa formularza. Najprościej było by zrobić drugą akcje do zapisania danych i nowy plik walidacji ale jest to powtarzanie kodu. Da się to rozwiązać w inny sposób questionmark.gif


--------------------
Miałem ciężkie dzieciństwo, alfabet poznawałem z elementarza, a nie z klawiatury.

Warsztat: Gentoo GNU\Linux, Apache 2.0.58, PHP 5.2.2, MySQL 5.0.44, PostgreSQL 8.0.13, IDE: Eclipse + PDT + Aptana
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
jupeter
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 14.07.2004
Skąd: Warszawa

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


sądzę że niestety nie.
Cytat
Najprościej było by zrobić drugą akcje do zapisania danych i nowy plik walidacji ale jest to powtarzanie kodu.


Od strony klasy, zawsze możesz zrobić:
Kod
...
public function executeAdd()
{
    $this->executeSave();
}

public function executeSave()
{
....


a tylko plik walidacji powtórzyć.

Jest jeszcze brudny sposób zrobienia tego - w yml chyba możesz zaszywać kod PHP. Można sobie wyobrazić jakiś include w skrypcie winksmiley.jpg


--------------------
www.symfony.pl - serwis społeczności symfony
Go to the top of the page
+Quote Post
Hostis
post
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.07.2007
Skąd: /home/skawina

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


W ten właśnie sposób to zrobiłem bo miałem dość szukania rozwiązania jak mnie czas goni.


--------------------
Miałem ciężkie dzieciństwo, alfabet poznawałem z elementarza, a nie z klawiatury.

Warsztat: Gentoo GNU\Linux, Apache 2.0.58, PHP 5.2.2, MySQL 5.0.44, PostgreSQL 8.0.13, IDE: Eclipse + PDT + Aptana
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 05:45