Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [kohanaphp] Problem z routingiem kohana 3
Forum PHP.pl > Forum > PHP > Frameworki
milupo2nd
Witam,
Czy ma ktos pomysl jak stworzyc routowanie dla nastepujacych przykladow:

domena.pl/ => controler:index, action:index
domena.pl/krakow/hotele =>controler:miasta, action:hotele, param:krakow
domena.pl/krakow/hotele/strona/3 =>controller:miasta,action:hotele, param:krakow

znalazlem cos w tym stylu ale nie bardzo chce dzialac:
  1. Route::set('default', '(<controller>(/<action>(/<id>)))', array('controller' => 'home|show|search|submit|vote'))
  2. ->defaults(array(
  3. 'controller' => 'welcome',
  4. 'action' => 'index',
  5. ));


jakis inny pomysl?
Z gory dzieki za pomoc
ziqzaq
  1. Route::set('default', '(<controller>(/<action>(/<id>)))', array('controller' => 'home|show|search|submit|vote'))
  2. ->defaults(array(
  3. 'controller' => 'welcome',
  4. 'action' => 'index',
  5. ));

Że tak się spytam. Co powyższy kod ma wspólnego z założeniami?
Cytat
domena.pl/ => controler:index, action:index
domena.pl/krakow/hotele =>controler:miasta, action:hotele, param:krakow
domena.pl/krakow/hotele/strona/3 =>controller:miasta,action:hotele, param:krakow

Przecież nawet kolejność elementów ścieżki się nie zgadza. Po co <controller> na początku jak tam ma być parametr miasto? Po co to <id>? Dlaczego ograniczasz kontrolery do 'home|show|search|submit|vote' gdy chcesz aby był wywoływany kontroler "miasta"?
Bez ładu i składu.
  1. Route::set('miasta', '<city>(/<action>(/strona/<page>))')
  2. ->defaults(array(
  3. 'controller' => 'miasta',
  4. 'action' => 'hotele',
  5. ));
  6. Route::set('default', '')
  7. ->defaults(array(
  8. 'controller' => 'index',
  9. 'action' => 'index',
  10. ));
milupo2nd
W kohanie 3 troche pokrecony jest ten routing (przynajmniej jak dla mnie). W ferworze walki zaczalem szykac informacji o sposobach routingu i natknalem sie na kod, ktory przytoczylem smile.gif

@ziqzaq wielkie dzieki za rozwiazanie. Sprawdze je jutro.

Jesli chodzi o kod to nie dzialal dlatego ze byl blad. Poprowiono go w wersji 3.0.5 http://dev.kohanaframework.org/issues/2878 rolleyes.gif
ziqzaq
Cytat(milupo2nd @ 3.06.2010, 23:35:57 ) *
Jesli chodzi o kod to nie dzialal dlatego ze byl blad. Poprowiono go w wersji 3.0.5 http://dev.kohanaframework.org/issues/2878

Prosto z http://dev.kohanaframework.org/issues/2878:
Cytat
In Class Contents there is the following example:

// This route will only match when <id> is a digit
Route::set('user/edit/<id>', array('id' => '\d+'));

// This route will match when <path> is anything
Route::set('<path>', array('path' => '.*'));

This appears to be incorrect, as set is missing the name parameter and should be like:

Route::set('path', '<path>', array('path' => '.*'));

Sorry, ale o jakim ty kodzie teraz piszesz? smile.gif To, że w przykładzie brakowało nazwy ścieżki nijak ma się do twojego kodu.
Ja odnosiłem się do twojego przykładu, nie do przykładu z dokumentacji.
Routing w Kohanie 3 jest zdecydowanie prosty, tam naprawdę nie ma wielkiej filozofii:
- nazwa ścieżki,
- definicja ścieżki np. '<controller>(/<action>(/<jakisparametr>))',
- opcjonalnie definicja parametrow np. jeśli parametr 'jakisparametr' ma być tylko liczbą to array('id' => '\d+'),
- domyślne wartości parametrów (metoda defaults())
- + wiedza o 3 podstawowych parametrach: <controller>, <action>, <directory>.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.