Michał Soczyński

Michał Soczyński nie, nie pracuje

Temat: [symfony] sfWebRequest metoda post

Kolejny problem spowodowany brakiem doświadczenia, jak mogę pobrać informacje z przesłanego formularza:

$request->getParameter('user_id');
mi nie działa :(

Dodatkowo chciałbym się dowiedzieć jak mam przesłany formularz to jak wymusić nadanie user_id, tak żeby nawet jak ktoś prześle przez ukryty input inną wartość to nie będzie ona brana pod uwagę.Michał Soczyński edytował(a) ten post dnia 23.08.11 o godzinie 13:37
Piotr W.

Piotr W. Symfony2 / MongoDB

Temat: [symfony] sfWebRequest metoda post

Jeśli korzystasz z posta to użyj wpierw metody "bind"

$form->bind(
$request->getParameter($form->getName()),
$request->getFiles($form->getName())
);

Widzę, że to już kolejny post tego typu to może wypadałoby przejsc jobeeta? :)
http://www.symfony-project.org/jobeet/1_4/Doctrine/en/
Michał Soczyński

Michał Soczyński nie, nie pracuje

Temat: [symfony] sfWebRequest metoda post

Przerobiłem całą książkę Gajdy, ale nie poruszył tam tematów formularza, na jobeeta już nie mam czasu teraz. Dzięki za pomoc. Staram się korzystać z dokumentacji i szukać, większość znajduję sam, w tym przypadku pomogło mi przez wywołaniem formularza ustawienie:

$this->getUser()->getGuardUser()->getProfile()->setUserId($this->getUser()->getGuardUser()->getId());
Paweł Kubasiak

Paweł Kubasiak Artysta Programista

Temat: [symfony] sfWebRequest metoda post

Wartości z formularza możesz pobrać jedynie po wykonaniu binda

czyli

$form->bind($request->getParameter($form->getName())

poszczególne pola z formularza odczytujesz $form->getValue('nazwapola');

Książkę Gajdy lepiej odłóż na półkę o wiele lepszy jest joobet.

konto usunięte

Temat: [symfony] sfWebRequest metoda post

Michał Soczyński:

$this->getUser()->getGuardUser()->getProfile()->setUserId($this->getUser()->getGuardUser()->getId());
ale potworek... Gdybyś zdefiniował sobie w myUser.class.php funkcję getId() o której pisałem Ci w innym poście i zrobił dodatkową linię to generalnie miałbyś ten zapis o wiele krótszy:
$user = $this->getUser();
$user->getGuardUser()->getProfile()->setUserId($user->getId());


Radzę Ci od razu pisać czysty kod, bardziej zwięzły i czytelny, bo później jak będziesz chciał coś poprawiać w zasyfiałym projekcie, to jedyne co Ci pozostanie, to napisanie go od początku :D

konto usunięte

Temat: [symfony] sfWebRequest metoda post

Paweł Kubasiak:
Wartości z formularza możesz pobrać jedynie po wykonaniu binda

czyli

$form->bind($request->getParameter($form->getName())

Nieprawda. Oczywiście jest to forma poprawna, ale pisanie, że to jedyna opcja jest nadużyciem. Równie dobrze do zmiennych można się odwołać w ten sposób:

$values = $request->getParameter('nazwa_formularza');
echo $values['zmienna'];
$this->getUser()->getGuardUser()->getProfile()->setUserId($this->getUser()->getGuardUser()->getId());

Pardon, ale jeżeli używasz domyślnie zbudowanego sfGuarda, to w przykładzie powyżej sfGuardUserProfile jest w relacji z sfGuardUserem, czyli już ma ustawiony userId. Zatem co to właściwie robi?

I zgadzam się z przedmówcami. Jobeet. Korzystanie z symfony bez znajomości formów to jak korzystanie z samochodu bez dwóch kół.Arkadiusz O. edytował(a) ten post dnia 25.08.11 o godzinie 09:03
Łukasz Woźniak

Łukasz Woźniak Starszy programista,
Asseco Business
Solutions S.A.

Temat: [symfony] sfWebRequest metoda post

Michał Soczyński:
Kolejny problem spowodowany brakiem doświadczenia, jak mogę pobrać informacje z przesłanego formularza:

$request->getParameter('user_id');
mi nie działa :(

Dodatkowo chciałbym się dowiedzieć jak mam przesłany formularz to jak wymusić nadanie user_id, tak żeby nawet jak ktoś prześle przez ukryty input inną wartość to nie będzie ona brana pod uwagę.


Dobrą praktyką i ze względów bezpieczeństwa, jeśli potrzebny jest Ci w formularzu user_id, a wiesz ze zalogowany użytkownik tylko z niego korzysta, to nie przesyłasz user_id w formularzu tylko w obsłudze formularza ustawiasz ten parametr przy zapisie. Wtedy nie martwisz sie, że ktoś może podać Ci inną wartość.

Następna dyskusja:

[symfony] sfWebRequest meto...




Wyślij zaproszenie do