Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] Routing Regex w .ini, co mam źle?
kaem
post
Post #1





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Witam, ciąglę uczę się ZF i mam problem z takim routingiem:
  1. resources.router.routes.show.type = "Zend_Controller_Router_Route_Regex";
  2. resources.router.routes.show.route = "statyczny-tekst/(\d+)/(\w+)";
  3. resources.router.routes.show.defaults.controller = "index";
  4. resources.router.routes.show.defaults.action = "show";
  5. resources.router.routes.show.reverse = "statyczny-tekst/%d/%s";
  6. resources.router.routes.show.map.1 = "year";
  7. resources.router.routes.show.map.2 = "title";

i link
  1. <?php echo $this->url(array('year' => 2011, 'title'=>'jakis-tekst'), 'show') ?>

i jak próbuję wejść wywala mi wyjątek: Invalid controller specified (statyczny-tekst)
oraz
Request Parameters:
array (
'controller' => 'statyczny-tekst',
'action' => '2011',
'module' => 'default',
)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
tvister
post
Post #2





Grupa: Zarejestrowani
Postów: 253
Pomógł: 29
Dołączył: 18.08.2008

Ostrzeżenie: (0%)
-----


Regexp w route nie wygląda na poprawny



Sorry wszystko jest ok z regexp-em
Prawdopowodbnie masz niepoprawną kolejność routów ustawioną w ini.

Ten post edytował tvister 24.01.2012, 08:58:49


--------------------
Kto rano wstaje ten leje jak z cebra.
Go to the top of the page
+Quote Post
amii
post
Post #3





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Spróbuj wyrzucić średniki z XML, poza tym to chyba powinno być definiowane w application.ini


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
kaem
post
Post #4





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Cytat
poza tym to chyba powinno być definiowane w application.ini
jest, ale chciałem to wstawić w bbcode ale nie ma takiego jak INI smile.gif

tvister
Cytat
Prawdopowodbnie masz niepoprawną kolejność routów ustawioną w ini

niepoprawną, tzn?

Ten post edytował kaem 24.01.2012, 10:22:48
Go to the top of the page
+Quote Post
amii
post
Post #5





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Problem jest taki, że skrypt odwołuje się do kontrolera statyczny-tekst a powinien do show. Wczytujesz ustawienia z pliku INI do routera coś na kształt ?

  1. $config = new Zend_Config_Ini('/path/to/config.ini', 'production');
  2. $router = new Zend_Controller_Router_Rewrite();
  3. $router->addConfig($config, 'routes');



Zobacz może tutaj coś pomoże -> http://framework.zend.com/manual/en/zend.c...ler.router.html

Ten post edytował amii 24.01.2012, 11:01:29


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
kaem
post
Post #6





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Nie, narazie wszystko jest w application.ini, ale docelowo ma być tak jak napisałeś (tylko może w xml - przyzwyczajenie z Agavi smile.gif)
Zaglądałem oczywiście do dokumentacji, ale dalej nie czaje co robię źle. Pamiętam, że niedawno ucząc się z tutoriala, robiłem taki routing a teraz robiąć większy projekt nie mogę przejść tego problemu... Pewnie jakaś popierdułka z mojej strony, pomoże ktoś wyłapać?
Czemu szuka akcji statyczny-tekst/2011 zamiast zdefiniowanej index/show?

Ten post edytował kaem 24.01.2012, 11:28:56
Go to the top of the page
+Quote Post
melkorm
post
Post #7





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Jeżeli masz ustawiony router default który wygląda następująco
Kod
:controller/:action

To wtedy Twój link w postaci
statyczny-tekst/cokolwiek/*
Jest łapany przez pierwszy router czyli defaultowy i w ogóle nie dochodzi do routera zdefiniowanego przez Ciebie smile.gif


--------------------
Go to the top of the page
+Quote Post
pawv
post
Post #8





Grupa: Zarejestrowani
Postów: 25
Pomógł: 5
Dołączył: 9.02.2011
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Podany wyżej router nie znajdzie akcji statyczny-tekst/2011 bo ma zdefiniowane ze po 2011 ma czekać na "/" i kolejny parametr. Dodatkowo nie podoba my się myślnik w "jakis-tekst".

  1. <a href="<?php echo $this->url(array('year' => 2011, 'title'=>'jakistekst'), 'show') ?>"><?php echo $this->url(array('year' => 2011, 'title'=>'jakistekst'), 'show') ?></a>
Go to the top of the page
+Quote Post
kaem
post
Post #9





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


@pawv dzięki, zamieniłem "statyczny-tekst/(\d+)/(\w+)"; na "statyczny-tekst/(\d+)/(\w+)$"; i wygląda na to, że działa. O to chodziło, prawda?
@melkorm, też dzięki za uwagę, przyda się na przyszłość wink.gif

Ten post edytował kaem 24.01.2012, 12:05:00
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:14