Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Routing Regex w .ini, co mam źle?
Forum PHP.pl > Forum > PHP > Frameworki
kaem
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',
)
tvister
Regexp w route nie wygląda na poprawny



Sorry wszystko jest ok z regexp-em
Prawdopowodbnie masz niepoprawną kolejność routów ustawioną w ini.
amii
Spróbuj wyrzucić średniki z XML, poza tym to chyba powinno być definiowane w application.ini
kaem
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?
amii
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
kaem
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?
melkorm
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
pawv
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>
kaem
@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
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.