Jak wyciągnąć parametr z sfWebRequest:
- Najprościej:
$this->getRequest()->getParameter(‘category_id’);
- Gdy mamy grupowanie:
$this->getRequest()->getParameter(‘product[category_id]‘);
- Gdy mamy wiele w grupie:
$product_params = $request->getParameter(‘product’);
$cat_id = $product_params[category_id];
$name = $product_params[name];
$cat_id = $product_params[category_id];
$name = $product_params[name];
Na koniec coś, co pojawiło się w Jobeet, a nie ma w dokumentacji formsów.
Zamiast:
$this->form->bind($request->getParameter(‘nazwa_formularza’));
możesz pisać:
$this->form->bind($request->getParameter($this->form->getName()));
Warto dodać, że ostatni trick ma zastosowanie w przypadku kiedy zmienne w sfWebRequest są przekazywane w tablicy. Zresztą zaglądając do źródła można się zorientować, że nie jest to zbyt wyszukane rozwiązanie.
Niemniej jest pomocne i od dziś stosuję.
Czasem nie mamy możliwości dostania się do obiektu sfRequest bo jesteśmy np. poza klasą akcji (sfActions). Obiekt sfRequest znajduje się w kontekscie aplikacji i wyciągniemy go w ten sposób:
“sfContext::getInstance()->getRequest()”
Oczywiście można też odrazu sięgnąć po parametr:
“sfContext::getInstance()->getRequest()->getParameter( ‘param_name’ )”