Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zend framework - backreferences kod regex rutiranja

[es] :: PHP :: Zend framework - backreferences kod regex rutiranja

[ Pregleda: 1771 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-1.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Zend framework - backreferences kod regex rutiranja17.05.2009. u 10:42 - pre 182 meseci
Ćao!

Dodao sam routing pravilo u bootstrap.php faju i usmeravanje radi na sledeći način:
Code:

$router->addRoute(
       "pagination",
        new Zend_Controller_Router_Route("/:strana", array ("controller"=>"index", "action"=>"index"))
        );

www.example.com/1  =>  www.example.com/index/index/strana/1


Gornje pravilo funkcioniše kako treba, međutim nije mi najjasnija upotreba regexa.
Code:
$router->addRoute(
        "paginationregex",
        new Zend_Controller_Router_Route_Regex("([0-9]+)", 
        array ("controller"=>"index", "action"=>"index", 
        array('strana' => 1)))
        );

Ovo pravilo uspeva pa pretvori poziv koji zadovoljava www.example.com/([0-9]+) u www.example.com/index/index samo je problem u tome što ne znam kako da iskoristim vrednost koju sam dobio sa ([0-9]+) izrazom i da je prosledim kao strana argument.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-2.sezampro.yu.



+33 Profil

icon Re: Zend framework - backreferences kod regex rutiranja17.05.2009. u 11:14 - pre 182 meseci
Stavi array(1 => 'strana'), umesto array('strana' => 1).
 
Odgovor na temu

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-1.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Re: Zend framework - backreferences kod regex rutiranja17.05.2009. u 11:36 - pre 182 meseci
Hvala, ali na žalost neće! Ne znam, možda sam pogrešio na nekom drugom mestu.
U index kontroleru(f-ja indexAction) stranicu dobijam sa:
Code:
$this->_request->getParam('strana')
i taj kod radi kod dikrektnog poziva i rutiranja bez regex-a.
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: Zend framework - backreferences kod regex rutiranja17.05.2009. u 12:01 - pre 182 meseci
Nisam bas analizirao kod koji si postavio jer mi se cini prilicno konfuznim za ovako nesto a i ne opravdanim jer mi nije jasno cemu seo urlovi kodi paginacije?!

Probaj sa:

Code:

$this->_request->getParam('1');
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-4.sezampro.yu.



+33 Profil

icon Re: Zend framework - backreferences kod regex rutiranja17.05.2009. u 19:57 - pre 182 meseci
Citat:
mare_bj: Hvala, ali na žalost neće!

Jesi siguran?

btw Imaš grešku pri kreiranju tog Zend_Controller_Router_Route_Regex, treba da imaš 3 parametra, a ti imaš samo 2. Nisi zatvorio zagradu od tog niza koji ti predstavlja drugi argument. Taj deo bi trebalo da izgleda ovako:
Code:

$router->addRoute(
        'paginationregex',
        new Zend_Controller_Router_Route_Regex(
                '([0-9]+)', 
                array('controller'=>'index', 'action'=>'index'), 
                array(1 => 'strana')
        )
);

A i druga stvar, ako je tebi cilj samo da obezbediš da taj parametar za paginaciju u URL-u bude numeričkog tipa, zašto onda ne kreriraš rutu ovako:
Code:

$route = new Zend_Controller_Router_Route(
    'archive/:year',
    array(
        'strana'     => 1,
        'controller' => 'index',
        'action'     => 'index'
    ),
    array('strana' => '\d+')
);
$router->addRoute('archive', $route);

Nema potrebe za regex-om. I nemoj da te zbuni ovo što sam stavio 'strana' => 1, to samo dodeljivanje podrazumevanih (default) vrednosti, što znači da kad se pozove npr. http://test.com/index/index, taj parametar "strana" će po default biti postavljen na 1.

A i što kaže Mister_rap, ne vidim svrhu svega ovoga samo zbog pravljenja straničenja...

I da, koristi jednostruke navodnike, bolje je...
 
Odgovor na temu

[es] :: PHP :: Zend framework - backreferences kod regex rutiranja

[ Pregleda: 1771 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.