![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
witam
można w pliku validate/profil.yml zrobić coś takiego, że wartość z jednego pola w formularzu będzie zmieniona przez jakąś moją funkcję? albo helper? a chodzi o to, że jest formularz, w jednympolu user wpisuje jakąś wartość, a w drugim polu ta sama wartość jest potraktowana pewną funkcją do zmiany - pobieram tą wartość AJAXem. ale tak czy siak trzeba by tą wartość później jeszcze raz przefiltrować. nie chce tego robić w akcji. mam kilka formularzy, ale jedną akcję. dlatego chciałbym móc to robić w osobnym pliku, który będzie dotyczył tylko jednego formularza. dzieki za zrozumienie i pomoc:) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
No na pierwszy rzut oka mógłbyś zrobić dwie rzeczy:
1. Dodatkową validację przeprowadzić w odpowiedniej metodzie validate*(); 2. Napisać swój validator, który po odebraniu parametru z obiektu sfRequest i zwetyfikowaniu podmieni go później na inny (sfRequest()->setParameter()) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
właśnie tak kombinuje, utworzyłem plik
studioValidator.class.php i w nim kombinuje różne rzeczy ale nic nie wychodzi.
w akcji zapisuje dane z formularza w ten sposób:
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ale testowana wartość jest w zmiennej $value. I to ją możesz zmienić (jest ona przekazana przez referencję) podczas testowania.
Parametry to ustawienia z pliku .yml Przepraszam pewnie Cię wprowadziłem w błąd poprzednim postem z tymi parametrami. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
nie wiem jak to zmienić:(
taki kod ?
chciałbym, żeby ta wartość test była zapisana w bazie. EDIT: ale gafa:) w modelu wystarczyło nadpisać metodę (albo raczej rozszerzyć) zapisującą daną kolumną. szkoda, że nie można samemu sobie dać pomógł(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) EDIT2: jednak to nie takie proste jak mi się wydawało. problem w tym, że ta kolumna jest unikalna. w walidacji chcę sprawdzić czy już taki wpis jest w bazie. załóżmy, że w bazie jest wpis "janek-2" user wpisze "janek 2" w klasie sfPropelUniqueValidator w bazie szukany jest wierszy który ma w kolumnie X wartość "janek 2" no i nie znajdzie czyli pozwoli zapisać. a ja zmodyfikowałem funkcje setX tak żeby zrobiła z "janek 2" "janek-2". w efekcie będzie błąd z bazy, że jest duplikat. przydałoby się, żeby można było w metodzie execute klasy walidacji modyfikować wartość, która pojawi się w formularzu. tylko jak to zrobić? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 13:50 |