[framework] routing

0

Chciałem zrobić taką regułę routingu, ale chyba nie działa...
Powiedzmy, ze mamy controller o nazwie article.php i chcemy uzyskać taki adres
http://server.pl/kategoria_glowna/kategoria_podrzedna/tytul_arta/data/id/article

gdzie article to nazwa wywoływanego controllera. Wmyśliłem coś takiego:
/:category1/:category2/:name/:date/:id/article

i teraz taka sprawa, to nie działa.. :/ wywala monit o braku category1... czy istnieje taka możliwość, czy moje testy są po prostu błędne i bezcelowe?

0

A jak masz zapisana te konfiguracje?

<route>
  <name>article</name>
  <url>/:category1/:category2/:name/:date/:id/article</url>
  <controller>article</controller>
  <action>main</action>
</route>

?

0

tak, ale dodatkowo miałem...

<requirements>
		<category1>(\s+)</category1>
		<name>(\s+)</name>
		<category2>(\s+)</category2>
	</requirements>

bez tego działa idealnie, dzięki za odp, ale juz wczoraj w nocy nad tym kombinowałem...

Ok, ale wracając do tematu samej funkcjonalności.

$config['route']['user'] = array(
    'url'        => '/User/:id/:controller/:action/*',
    'default'    => array(
                            'action'    => 'main',
                            'controller'    => 'user'
    ),
    'host'        => '/^(www\.)?user\.(.+$)/'
);

niestety wykozystanie subdomeny zwraca błąd związany z brakiem zmiennej w:

Linia 299 plik router.class.php
$url = 'http://' . $subdomain . $url;

Jak mniemam zmienna $subdomain powinna być zmienną $host. aczkolwiek nigdy nie można mieć pewności.

//Edit: i mam jakiś błąd z SVN:
user image

0

Hmm, no nad tym trzeba pomyslec (jezeli chodzi o routing). W regule nalezy dodac jeszcze pole subdomain:

$config['route']['user'] = array(
    'url'        => '/User/:id/:controller/:action/*',
    'default'    => array(
                            'action'    => 'main',
                            'controller'    => 'user'
    ),
    'host'        => '/^(www\.)?user\.(.+$)/',
   'subdomain' => 'user.foo.com'
);

Dlaczego? Poniewaz wartosc tego pola jest wykorzystywane do tworzenia linkow- np.: url('@user?id=1'); * powinno wygenerowac: http:*user.foo.com/User/1

0
Dominium napisał(a)

//Edit: i mam jakiś błąd z SVN:
user image
Teraz już powinno być ok.

0
Qyon napisał(a)

Teraz już powinno być ok.

Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1