Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%)
|
Hej,
mam małą zagwozdkę logiczną w tworzeniu klasy generującej formularz. Teoretycznie takową klasę napisałem, ale mam kilka wątpliwości. Od razu dodam, że aplikacja oparta jest o MVC. Skrócony kod klasy:
Formularz generuję w widoku, np.
Tutaj mam taką rozkminę, czy formularz lepiej generować w widoku jak powyżej, czy w osobnej klasie, np. application/forms/RegisterForm.php Pierwsze rozwiązanie widziałem w Yii, a drugie w Zendzie. A teraz sprawa najważniejsza. Posiadam osobną klasę walidującą pola formularza wg. zasad ustalonych w modelu. Tego nie będę pokazywał, bo nie ma związku. Chcę mieć dostęp do informacji o wszystkich walidujących polach w klasie walidacyjnej. Kontroler: Jeżeli naciśnięto przycisk, zbieram dane z formularza, pobieram reguły walidacji i przekazuję to do klasy walidującej np. $this->validate($data, $rules) $data zawiera tablicę $_POST. W klasie walidacyjnej następuje sprawdzenie poprawności przesłanych danych wg. $rules. W tejże klasie muszę mieć dostęp do tego jaki dane pola ma $label - i to jest cały problem. Nie mam za bardzo pomysłu jak się do tego dostać. Podejrzewam, że w klasie MyForm i metodzie createElement() muszę zapisywać dane każdego tworzonego pola i zapisywać np. w statycznej własności klasy $formData. To nie jest problem. Tylko odwołanie się do np. MyForm::$formData z klasy walidacyjnej przecież nie pobierze tych danych, bo już ich tam nie "będzie". A po co mi wiedzieć jaki label ma dane pole? Ano po to, że jak nie przejdzie walidacji to do tablicy KlasaWalidacyjna->errors mogę dodać $label.' can not be empty' Ten post edytował Turson 24.08.2014, 11:23:12 |
|
|
|
Turson Klasa generująca formularz - dobre praktyki 24.08.2014, 11:22:41
Pyton_000 Wypluwasz errory w tablicy z kluczami z name pola ... 24.08.2014, 19:01:59
Turson Z walidacją i wyświetleniem komunikatów nie mam pr... 25.08.2014, 07:59:42
Pyton_000 A na co Ci to? Do reguł validujących dodajesz sobi... 25.08.2014, 08:10:40
Turson To jest jakieś rozwiązanie, ale chciałbym, żeby w ... 25.08.2014, 08:14:59
Pyton_000 No to dodajesz sobie w klasie Validującej odwołani... 25.08.2014, 08:27:21
Turson Tablicę rules mam zbudowaną w sposób:
[PHP] pobier... 25.08.2014, 08:36:06
Pyton_000 No to jedno rozwiązanie z ... :
- Robisz sobie In... 25.08.2014, 08:42:54
Turson Dobrze rozumiem?
[PHP] pobierz, plaintext <?php... 25.08.2014, 08:58:03
Pyton_000 Cos w ten deseń Tylko zamiast false zwracaj albo ... 25.08.2014, 09:08:59
Turson Już próbowałem już takiego rozwiązania i jak z kla... 25.08.2014, 09:12:43
Pyton_000 Czysta bo to kolejny request a więc dane nie są zn... 25.08.2014, 09:58:55
Turson Pisanie własnego komunikatu o błędzie dla każdej r... 25.08.2014, 10:09:44
memory Może coś w ten deseń
[PHP] pobierz, plaintext $r... 25.08.2014, 11:10:01
Turson @memory, ale co z "{label}" ? Nie stosuj... 25.08.2014, 13:56:49
RiE Może zamiast metody z 6 argumentami lepiej będzie ... 25.08.2014, 14:24:24
memory [PHP] pobierz, plaintext miało być {attribute... 25.08.2014, 14:52:52
kayman imo klasa generująca formularz to w ogóle zła prak... 25.08.2014, 15:27:59
Pyton_000 A wystarczyłoby
[PHP] pobierz, plaintext new Inpu... 25.08.2014, 15:39:23
Turson Co myślicie o rozwiązaniu: w $form->create... 8.09.2014, 14:21:52
aniolekx moim zdaniem możesz sobie tworzyć formularze dynam... 9.09.2014, 11:37:35
Turson To jakie rozwiązanie, żeby budować formularz obiek... 9.09.2014, 11:42:13 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 19:45 |