2012-12-19 11 views
12

ponieważ chcę oddzielić frontend i backend systemu. Stworzyłem 2 foldery wewnątrz kontrolerów jak frontend i backendsterowniki routingu w podfolderach - kodek

Poniżej jest struktura mojego folderu kontrolera

controller 
--frontend 
    ---store.php 
    ---processing.php 
    ---profile.php 
    ---authenticate.php 
    ---register.php 

--backend 
    ---authenticate.php 
    ---stats.php 
    ---users.php 
    ---property_manage.php 
    ---register.php 

mogę uzyskać dostęp do funkcji za pomocą

frontend/store/add 
frontend/store/manage 
...... 

backend/stats/sales 
backend/stats/payments 
..... 

ale chcę wystartować frontend i segmenty backendów z adresu URL.

Sprawdziłem funkcję wyznaczania trasy w kodzie znaków, ale zgodnie z moją wiedzą muszę indywidualnie określać każdą trasę. Ponieważ mam około 12 kontrolerów i każdy ma około 10 -15 funkcji, być może będę musiał określić każdą funkcję na trasie.

Czy istnieje inny skuteczny sposób na osiągnięcie, korzystając z trasowania lub w jakikolwiek inny sposób? (Bez użycia htaccess)

Odpowiedz

18

Wykonaj:

$route['store/(:any)'] = 'frontend/store/$1'; 
$route['processing/(:any)'] = 'frontend/processing/$1'; 
$route['profile/(:any)'] = 'frontend/profile/$1'; 

samo dla backend:

$route['backend/(:any)'] = 'backend/authenticate/$1'; 

Nie trzeba tworzyć każdą regułę w routes.php dla każdej funkcji kontrolera , wystarczy jedna reguła na kontroler, jak wspomniano powyżej.

URI Routing : CodeIgniter User Guide

$1 stanowią pierwszy wyraz, tutaj (:any) jest wyrazem, można mieć wiele wypowiedzi na każdej reguły, a wyrażenie jest reprezentowany jako $1, $2 i tak dalej po drugiej stronie.

Podobnie (:num) dopasuje segment zawierający tylko cyfry, (:any) dopasuje segment zawierający dowolne znaki, (\d+) dopasuje dowolną cyfrę, ([a-z]+) dopasuje dowolny tekst alfa.

+0

dzięki kolego ... działa świetnie .. więc potrzebuję zdefiniować trasę dla każdego kontrolera. czy możesz mi powiedzieć, co oznacza 1 $? – LiveEn

+1

$ 1 reprezentuje pierwsze wyrażenie, tutaj (: dowolne) jest wyrażeniem, możesz mieć wiele wyrażeń na każdej regule, a wyrażenie jest reprezentowane jako 1 $, 2 $ itd. Po drugiej stronie – hsuk

+2

(: num) dopasuje segment zawierający tylko liczby, (: any) będą pasować do segmentu zawierającego dowolny znak, (\ d +) dopasuje dowolną cyfrę, ([az] +) będzie pasować do dowolnego tekstu alfa – hsuk

1

W jakiś sposób trzeba odróżnić frontend od zaplecza. Może ustawić trasę, która przekazuje dowolne URI z "admin" do zaplecza i wszystko bez "admin" do frontendu.

0

Dla Front-End można dodać to w routes.php:

$this->set_directory("frontend"); 

więc w adresie URL przeglądarki, nie ma potrzeby, aby to "nakładka"