![]() ![]() |
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 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%)
|
A przesyłasz w requescie, primary key profilu?
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%)
|
tak to robie:
|
|
|
|
Post
#4
|
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%)
|
Hmm, nie o to chodzi. Z kodu, który pokazałeś nie wynika czy wysyłasz te dane.
Chodzi o to by podczas żądania edycji (na przykład w GET) pojawił się identyfikator rekordu. Więc jeśli edytujesz użytkownika to powinieneś w requeście przesłać klucz o nazwie id (jeśli tak jest w modelu) i wartości identyfikatora tego użytkownika. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%)
|
|
|
|
|
Post
#6
|
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#7
|
|
|
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? |
|
|
|
Post
#8
|
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%)
|
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. |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%)
|
dziekuje bardzo za obszerna odpowiedz:))
pozdrawiam |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 21:56 |