Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Jeden widok jedna akcja różne Validacje
Forum PHP.pl > Forum > PHP > Frameworki
Hostis
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
jupeter
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
Hostis
W ten właśnie sposób to zrobiłem bo miałem dość szukania rozwiązania jak mnie czas goni.
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.