![]() |
![]() |
![]()
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ł?
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) |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
przecież masz komunikat że brakuje ci frazy (parametru) w twojej ścieżce
spróbuj tak: -------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Kiedy zrozumiesz jak działa routing, zrozumiesz błąd w swoich założeniach. Jest to do wykonania ale trzeba się nakombinować a i tak nie ma to najmniejszego sensu.
Lepiej normalnie wysłać formularz do jakieś akcji zebrać keyword i zrobić redirect do odpowiedniej akcji. Co do drugiego problemu to musisz dodać sepatory (plik factories.yml): Kod default:
routing: param: segment_separators: [ /, ., "[", "]" ] |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Aha czyli rozumiem że wysyłam GETEM formularz powiedzmy do akcji check. Tam jest pobierany keyword i przekierowany na akcję search z dobrym już routingiem. Wysyłanie POSTem nie wchodzi w grę bo komunikat przeglądarki przy cofaniu czy odświeżaniu zapytania jest nie do przyjęcia... Mam nadzieję że dobrze rozumuję...
|
|
|
![]()
Post
#5
|
|
![]() 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ę:
Ten post edytował Crozin 12.04.2010, 14:03:43 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
A ja proponuje wrócić i poczytać dokumentacje związaną z formularzami. Nawet do wersji 1.2 jest polska wersji podajże
-------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Crozin ale jak wyślę formularz metodą POST gdziekolwiek to w momencie jak użytkownik będzie chciał cofnąć w przeglądarce to wyskoczy mu dalece niewskazany komunikat o przesyłaniu postem....
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
No to wyślij formularz jako get z dodatkowym parametrem lub do innej akcji.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ok i też tak zrobię...
Destroyer mi odpowiedział na drugie pytanie , ale teraz zobaczyłem że nie o to mi chodziło...Nie chodzi mi o separators ale o nawiasy "[" "]". Chcę żeby one były poprostu interpretowane jako nazwa np (search[costam]) - jako cały parametr.... Ten post edytował blackroger 14.04.2010, 19:54:24 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Podałem rozwiązanie z separatorami, bo o to zapytałeś. Zadaj pytanie precyzyjniej. Co ma być interpretowane jako nazwa i co to oznacza?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
A drugie pytanie to jak w routingu dać jako parametr takie coś:
url: /search/:search[keyword] (chodzi o nawiasy) Dokładniej....czy jest możliwość żeby w routingu była interpretowana tablica search? Chodzi o zmienną w takiej postaci: search[keyword]...search[category] itd....bo na obecna chwilę wyrzuca błąd... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:19 |