Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CI] routeing, Routing
-CI-
post
Post #1





Goście







Witam,

W necie znalazłem pełno przykładów z wyrażeń regularnych w routingu np.:
  1. <?php
  2. $route['klasa/:any']='klasa/index';
  3. ?>


ale nie wiem jak pozbyć się z adresu nazwy klasy, w CakePHP jest to banalnie proste:
  1. <?php
  2. Router::connect ('/*', array('controller'=>'podstrony', 'action'=>'podstrona'));
  3. ?>


Próbowałem napisać coś takiego $route[':any'] = ... - ale nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
grzesiek_g
post
Post #2





Grupa: Zarejestrowani
Postów: 249
Pomógł: 30
Dołączył: 18.07.2007

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


Ale przecież przeczytaj moje przykłady jeszcze raz.
Np w pierwszym mamy adres:
http://example.com/privacy-policy
W drugim:
http://example.com/services-nazwa
ale może być i tak:
http://example.com/jakasstrona - i kieruje to na kontroler np /main/newsy

A domyślny kontroler? Przecież masz to w pliku konfiguracyjnym, oglądaleś ten plik?
Go to the top of the page
+Quote Post
-CI-
post
Post #3





Goście







Cytat(grzesiek_g @ 5.03.2008, 17:29:30 ) *
Ale przecież przeczytaj moje przykłady jeszcze raz.
Np w pierwszym mamy adres:
http://example.com/privacy-policy
W drugim:
http://example.com/services-nazwa
ale może być i tak:
http://example.com/jakasstrona - i kieruje to na kontroler np /main/newsy

A domyślny kontroler? Przecież masz to w pliku konfiguracyjnym, oglądaleś ten plik?



Oglądałem ten plik - ale jeśli mam np. 10 stron w menu - z możliwością rozbudowy to wtedy musze używać np. www.strona.pl/cos/strona1 , www.strona.pl/cos/strona2, www.strona.pl/cos/strona3

I jak można się pozbyć tego "cos" -> czyli nazwy kontrolera - żeby był on wywoływany domyślnie czyli adres miałby wyglądać tak www.strona.pl/strona1 - i wtedy wywoływany jest kontroler cos, natomiast jeśli link będzie wyglądał np. www.strona.pl/cos2/2/opis-linku - to wtedy już standardowo wywoływany jest kontroler cos2 itp. W CakePHP jest coś takiego:

Router::connect ('/', array('controller'=>'glowny_kontroler', 'action'=>'index'));
Router::connect ('/l/', array('controller'=>'glowny_kontroler', 'action'=>'index'));
Router::connect ('/a/', array('controller'=>'inny_kontroler', 'action'=>'index'));
Router::connect ('/a/strona/*', array('controller'=>'inny_kontroler', 'action'=>'index'));
Router::connect ('/a/*', array('controller'=>'inny_kontroler', 'action'=>'moja_funkcja'));
Router::connect ('/szukaj/*', array('controller'=>'kontroler_szukaj', 'action'=>'index'));
Router::connect ('/newsletter/*', array('controller'=>'kontroler_newsletter', 'action'=>'index'));
Router::connect ('/l/*', array('controller'=>'glowny_kontroler', 'action'=>'moja_funkcja'));
Router::connect ('/*', array('controller'=>'glowny_kontroler', 'action'=>'moja_funkcja')); - bez nazwy kontrolera i wywołanie funkcji innej niż index

I na tej samej zasadzie chciałbym zrobić linki w CI - czyli pozbyć się nazwy kontrolera / funkcji - dla wybranych warunków...
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.10.2025 - 11:22