Routovanie „nejaky-webalizovany-title-17“ a deprecated funkcie
- MarekR
- Člen | 17
Zdravim. Zacinam s nette, idem podla manualu a mam rozchodene toto:
https://doc.nette.org/…tion/routing#…
url funguje v tvare <id>-<title> (napr. „17-nejaky-webalizovany-title“) rad by som sa opytal ako to mozem „prehodit“ tzn. mat adresu v tvare „nejaky-webalizovany-title-17“ – ak iba prehodim routu na <title>-<id> tak sa mi do metody dostane $title=„nejaky“ a $id=„webalizovany-title-17“ co je pochopitelne zle :)
Pripadne da sa to zriesit aby som v metode nemusel ocakavat parameter $title? bohate mi staci $id… (ale ak by sa to malo zbytocne komplikovat tak nech tam bude)
A dalej moje IDE mi hlasi ze funkcie Route::addStyle a Route::setStyleProperty su deprecated. (moja verzia nette je 2.2 a dokumentaciu citam pre verziu 2.2)
Takze ake funkcie ich nahradia? Su uz k dispozicii? Alebo mozem pokojne pouzivat tieto?
Editoval MarekR (11. 10. 2014 23:03)
- Oli
- Člen | 1215
Ahoj,
pokud ti stačí v metodě id
, tak bych si na to napsal filtry.
Tam si můžeš nadefinovat, že chceš jeden parametr, kterej do URL vypíše
$slug-$id
a do metody pošle $id
.
Jinou možností by bylo nastavit si jiný oddělovač mezer ve webalize nebo nastavit oddělovač id a slugu na jiný znak než pomlčku.
Víc možností, obávám se, nemáš.
Co se týče Route::addStyle, tak tady se to trochu řešilo.
- nanuqcz
- Člen | 822
Ahoj, nestačilo by toto: https://doc.nette.org/…tion/routing#…
? Routeru řekneme, že <id>
můžou být jen čísla, a
je to:
$route = new Route('<presenter>/<action>[/<title>-<id [0-9]+>]', 'Homepage:default');
- David Matějka
- Moderator | 6445
matchne se to spravne, preg_match to zaridi :) prece se ti nemuze ztratit kus url…