Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [symfony] edycja danych, formularz, walidacja i sfPropelUniqueValidator
AxZx
post
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


witam

przy rejestracji nowego profilu przydaje sie sfPropelUniqueValidator w pliku validation/rejestracja.yml
sfPropelUniqueValidator sprawdza czy podany login/email jest juz w bazie danych.
elegancko to sprawdza i wyrzuca blad gdy login zajety.

ale jak uzyc sfPropelUniqueValidator w walidacji formularza edycji danych profilu?
w sytuacji gdy uzytkownik zmieni tylko jedno pole (nie login) w formularzy i zatwierdzi zmiane walidator zwroci blad: taki login jest zajety. oczywiscie ze jest zajety bo to jego login jest juz w bazie i powinna byc mozliwosc zapisania (bo zmienil inne pola).

zapomnialem o jakims parametrze w validation/edytuj.yml ? albo gdziekolwiek indziej?

pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


czyli w ktorej metodzie to ma byc? (tak na przyszlosc jakbym chcial to robic w ten sposob)
w handleEdytuj() ?
no albo sie wogole tak nie da bo sprawdzanie jest wykonywane przed wywolaniem metody w kontrolerzE?
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(AxZx @ 8.05.2008, 16:25:35 ) *
no albo sie wogole tak nie da bo sprawdzanie jest wykonywane przed wywolaniem metody w kontrolerzE?
Dokładnie. Sprawdzanie (validacja) jest wykonywana zanim nastąpi wykonanie akcji. Rzecz, o której mowa nie nie musisz umieszczać w żadnej akcji. Chodzi o to by była przesłana w żądaniu. I tu chyba nie za bardzo biegasz o co chodzi.

Masz formularz zmiany danych. Zawiera on jakieś tak dane, między innymi login. I te dane wysyłasz do akcji i one właśnie lądują w żądaniu. Sęk w tym, co już poprawiłeś, że żądanie (czyli dane, które wysyłasz) muszą zawierać identyfikator obiektu.
Rozwiązanie, które zastosowałeś (czyli umieszczenie id w zestawie danych do przesłania) jest jak najbardziej poprawne i właśnie o to chodziło.
Ewentualnie mogłeś jeszcze na przykład dorzucić to id URLa: http://adres.pl/editUser?id=10 Tak też by było dobrze.
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: 24.12.2025 - 11:53