Routovanie „nejaky-webalizovany-title-17“ a deprecated funkcie

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MarekR
Člen | 17
+
0
-

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
+
0
-

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
+
+1
-

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');
Mysteria
Člen | 797
+
0
-

Osobně tyhle funkce používám dál, protože se mi zatím nechtěla řešit jejich náhrada. :)

Oli
Člen | 1215
+
0
-

No, neni to moc častý, ale co kdyz bude ve slugu číslo, nematchne to jako id?

Editoval Oli (12. 10. 2014 20:41)

Zax
Člen | 370
+
0
-

@Oli to je IMHO dobrý postřeh, co se stane třeba v případě /10-duvodu-proc-prejit-k-nette-487 ? No i když to asi zde konkrétně vadit nebude, ale co kdyby celý slug byl číslo? O_o

Editoval Zax (12. 10. 2014 21:39)

Oli
Člen | 1215
+
0
-

@Zax Tady to je řekl bych v pohodě. Ale třeba zavodnik-dojel-na-2-miste-17 už podle mě matchne 2 jako <id> a -miste-17 vubec nepředá. Nebo mi něco uniká?

David Matějka
Moderator | 6445
+
0
-

matchne se to spravne, preg_match to zaridi :) prece se ti nemuze ztratit kus url…

Zax
Člen | 370
+
0
-

Asi jo, až teď mi došlo, že můj příklad nedává smysl a ani nedává moc smysl, aby se konec jen tak ukrojil. Jdu radši spát.