Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] routing i url_for() GET
blackroger
post
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

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


Witam. Problem jest następujący. Czy jest możliwość wysłania formularza GETEM używając url_for() tak żeby routing to łapał?
  1. <form method="get" action="<?php echo url_for('@search'); ?>">
  2. <input type="text" name="keyword" />
  3. <input type="submit" class="button" value="Search" />
  4. </form>
  5.  


Wpis w routingu:
search:
url: /search/:keyword
param: { module: search, action: searchresult }

Błąd:

The "/search/:keyword" route has some missing mandatory parameters (:keyword).

Tak jakby symfony nie widziało...

A drugie pytanie to jak w routingu dać jako parametr takie coś:
url: /search/:search[keyword] (chodzi o nawiasy)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


W skrócie robisz tak:
1) Wysyłasz metodą POST formularz do akcji (przykładowo) search/index
2) W tej akcji sprawdzasz na samym początku czy aby przypadkiem typ żądania to nie jest POST ($request->isMethod('post'))
3) Jeśli tak to wykonujesz przekierowanie na /search/tutaj_wpisana_fraza ($this->redirect('@search?keyword=' . $request->getParameter('keyword'))
4) Jeżeli nie to obsługujesz cały mechanizm wyszukiwania.

Czyli na dobrą sprawę:
  1. public function executeIndex(sfWebRequest $request) {
  2. if ($request->isMethod('post')) {
  3. $this->redirec....
  4. }
  5.  
  6. // tutaj obsłużenie wyszukiwania
  7. }


Ten post edytował Crozin 12.04.2010, 14:03:43
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: 6.10.2025 - 02:51