CI 묻고 답하기

제목 [초보]라우팅 질문
글쓴이 헛발이 작성시각 2010/06/17 11:16:43
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 20810   RSS
질문 드립니다.. 잘 부탁드립니다..
하고 싶은것은..

URL로 봤을때..

도메인.com/account/login/ 이렇게 하면 일반 사용자의 로그인 화면으로 하고 싶고...
도메인.com/admin/account/login/ 이렇게 하면 관리자의 로그인 화면으로 하고 싶고...

즉 관리자도 로그인 관련 부분이 있고 일반인도 로그인 관련이 있는것이죠..

그러면 ci의 구조는 어떻게 만드는게 좋은가요? 그리고 라우팅은 어떻게 해야 할지 잘 모르겠어요...

이렇게는 생각해 봤는데요...

modules
        ./account
                ./controller
                       ./admin
                               ./account.php   <-관리자용 로그인처리 콘트롤러
                       ./account.php  <-일반인용 로그인처리부분 콘트롤러

이렇게 하고 라우팅을

$route['account/(:any)'] = 'account/$1';
$route['admin/account/(:any)'] = 'account/admin/account/$1';

이렇게 하면 되지 않을까 햇는데...잘 안되네요 .. ㅋㅋ
이렇게 하면 안되는건가요?



 다음글 트위터 OAuth 연동시 콜백 함수를 위한 초보의 질문... (11)
 이전글 twtkr 처럼 아이디 비밀번호를 받아서 트위터로그인처... (5)

댓글

변종원(웅파) / 2010/06/17 14:31:00 / 추천 0
작성하신 개념은 맞는데 모듈러가 서브디렉토리도 인식하나요? (모듈러는 제가 안써봐서..)

도메인.com/admin/account/login/  (account/admin/account) 이게 작동하는지요?

도메인.com/account/admin/account 가 작동안하면 라우팅해도 소용없습니다.
헛발이 / 2010/06/17 14:44:02 / 추천 0
그니깐요...

modules
        ./account
                ./controller
                       ./admin
                               ./account.php   <-관리자용 로그인처리 콘트롤러
                       ./account.php  <-일반인용 로그인처리부분 콘트롤러

이렇게 만들고..

$route['account/(:any)'] = 'account/$1';
$route['admin/account/(:any)'] = 'account/admin/$1';

라우팅을 이렇게 하고 ...URL에서

도메인.com/account 는 되요....
도메인.com/admin/account 는 안되요..
도메인.com/admin/account/account 는 돼요...

근데 하고 싶은건...
도메인.com/account  와
도메인.com/admin/account  이건데요..

ㅡ.ㅡ;;

변종원(웅파) / 2010/06/17 15:39:45 / 추천 0
도메인.com/admin/account 는 당연히 안되죠. ^^

$route['admin/account/(:any)'] = 'account/admin/$1'; 이 규칙에 의하면

도메인.com/admin/account ->  'account/admin/' 여기에 매칭됩니다.
디폴트 컨트롤러를 넣어놓으시면 되겠네요. ^^
헛발이 / 2010/06/17 17:37:57 / 추천 0
근데 이해가 좀 안가는게 있는데요...

$route['admin/account/(:any)'] = 'account/admin/account/$1';

를 해도 매칭이 안되요...

URL에서 직접

도메인.com/account/admin/account/ 하면 매칭이 되는데요...

저 같은 경우는 항상 사용자화면과 관리자 화면이 항상 셋트로 붙어 다니는데..
모듈을 사용할 경우 사용자부분과 관리자 부분을 한 셋트로 만들 수 없을까요?


그냥

Modules
    /account
        /controller
        /models
        /views
    /account_admin
        /controller
        /models
        /views


$route['account/(:any)'] = 'account/$1';
$route['admin/account/(:any)'] = 'account_admin/$1';

이렇게 만드는게 나을까요?
byung82 / 2010/06/17 18:49:21 / 추천 0
 (:any) 로 설정을 하면 / 다음에 필히 한단어라도 있을경우만 
맵핑이 됩니다.
defualt로 하나 걸어두셔야 합니다.

이럴때는 ruby의 merb route가 참좋다고 느낍니다 ^^;
주스 / 2010/10/08 16:06:41 / 추천 0
 맞는지 모르겠지만

저는 메뉴얼 나온대로 사용 합니다 -_-;

\app\controllers\administrator\ 

라우터 설정

$route['administrator/([a-z]+)/(\d+)'] = "$1/$2";
 
http://도메인/administartor/user/login

컨트롤 파일은 \app\controllers\administrator\user.php  엑세스

user.php 파일 내용중  login 함수를 호출 합니다