2011-08-17 4 views
0

나는 users라는 모듈을 가지고있다. 내부에는 인덱스 컨트롤러가 있는데, 인덱스 컨트롤러 클래스 내에 part1Action()이라는 액션이 ​​있습니다.젠드 프레임 워크 - 모듈 라우팅

/user/index/part1 경로를 통해 part1Action() 액션에 액세스 할 수있을 것으로 예상했지만/user/index/index 액션으로 끝납니다.

모듈/컨트롤러 관점에서 작업하는 다른 모듈을 설정했지만이 작업은 인덱스 작업 이외의 다른 작업에 액세스하지 않았으므로 라우팅을 시도한 것은 처음입니다. 색인 작업 이외의

더 많은 정보를 원하시면, 내 application.ini이있다 : 어디에서 잘못 가고

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules = "" 
autoloaderNamespaces[] = "Users_" 

?

답변

2

part1 액션에는 숫자가 포함되어있어 유효한 액션 이름이 아닙니다. 작업 이름을 partOneAction과 같이 지정합니다. 당신이 절대적으로 사용하려는 경우 URL에 숫자가 정직하지만 너무

$front->getRouter()->addRoute(
    'part-1', 
    new Zend_Controller_Router_Route_Static(
     '/user/index/part1/', 
     array('module' => 'users', 'controller' => 'index', 'action' => 'part-one') 
    ) 
); 

같은 라우팅 규칙을 설정, 나는 아마 조금 다르게 내 모듈을 설정합니다. 나는 이것이 어떤 종류의 다중 페이지 형식을위한 것이라고 가정하고 있습니까?

너무 : {일부-의미 컨트롤러 이름} Controller.php

 
    public function {some-meaningful-action-name}Action() 
    { 
     $part = $this->getRequest()->getParam('part', 1); 
    } 

그런 식의 내부

 
modules 
    user 
     controllers 
      {some-meaningful-name}Controller.php 

당신의 URL 말이

/user/{some-meaningful-controller-name}/{some-meaningful-action-name}/part/{some-number}

+0

이 될 것입니다! – Owen

+0

좋아, 아직 작동하지 않기 때문에 나는 근본적인 것이 빠져있다. 사용자 모듈의 인덱스 컨트롤러에서 작업 이름을 partOneAction()으로 변경했습니다. 나는/user/index/part-one에서 접근 할 것으로 예상했지만 여전히 사용자/색인/색인 작업을 얻고 있습니다. – Owen

+0

내 기본 모듈에서 어떻게 작동하는지 이해가 안됨 IndexController (application/modules/default/IndexController) testAction()을 넣고/index/test를 사용하여 액세스 할 수 있지만 testAction()을 다른 모듈 컨트롤러 (예 : application/modules/user/IndexController)/users/index/test에서 작업에 액세스 할 수 없습니다. 내가 뭘 놓치고 있니? – Owen