2013-03-25 4 views
0

하위 범주 3.3 라우팅kohana 나는 노선이 코드 (Kohana 3.3을 사용하여) 한

Route::set('admin', '<directory>(/<controller>(/<action>))', array('directory' => '(admin)')) 
    ->defaults(array(
     'controller' => 'main', 
     'action' => 'index', 
    )); 

Route::set('default', '(<controller>(/<action>(/<id>)))') 
    ->defaults(array(
     'controller' => 'main', 
     'action' => 'index', 
    )); 

내가 www.my_site/admin를 입력하면 제대로 작동합니다.

모든 사용자는 인증을 받아야하므로 컨트롤러로 리디렉션됩니다.

Kohana_HTTP_Exception [ 404 ]: The requested URL admin/users/login was not found on this server.

가 어떻게 www.my_site/admin/user/login에 리디렉션/경로를 수행 할 수 있습니다

public function before() { 
    parent::before(); 
    Controller::redirect('admin/users/login'); ... 

그러나, 나는 다음과 같은 오류가 발생합니다?

+0

'action_login' 메소드가 정의 된'users' 컨트롤러가 있습니까? –

+0

아니요,이 구조를 가지고 있습니다. - 컨트롤러 (폴더) --admin (폴더) --- 사용자 (폴더) ---- login.php (컨트롤러) with code'code'class Controller_Admin_Users_Login ext ... .code'내가 처리 할 곳을 지정하십시오. – user2207401

답변

0

언급 한 바와 같이 컨트롤러와 함수는 존재합니까? 또한

Route

$route = Route::get('admin')->uri(array(
    'controller' => '..', 
    'action' => '..', 
)); 
Controller::redirect($route); 
0

업데이트를 통해 리디렉션에 대한 URL을 생성하는 것이 좋습니다 것입니다 ***

구조
• 컨트롤러 (폴더)
--admin (폴더)
--- 사용자 (폴더)
---- login.php (컨트롤러)
class Controller_Admin_Users_Login ext...

kingkero

$route = Route::get('admin')->uri(array(
      'directory' => 'admin', 
      'controller' => 'users_login', 
      'action' => 'index', 
)); 

Controller::redirect($route); 

나에게 도움이 대답했다하지만 URL이

우리가 가질 수있는보기 www.my_site/관리자/사용자/로그인을 users_login /보기 www.my_site/관리자가?

P. 너무 많은 것을 원한다면 미안 해요.

+0

컨트롤러가'login' 액션을 가진'users' 컨트롤러가 아니라 컨트롤러가'users_login' 인 특별한 이유가 있습니까? – kero

+0

이 응용 프로그램 아키텍처는 각 "이벤트"(로그인, 등록, 프로필)가 별도의 컨트롤러에서 수행되도록 구축되었습니다. 그리고 네,이 경우의 차이를 이해합니다. 링크의 첫 번째 관점을 갖게 될 것입니다. 도와 주셔서 감사합니다... – user2207401