2012-09-05 3 views
1

색인 컨트롤러가있는 모듈 mymodule이있는 경우. 어떤에서 나는특정 컨트롤러 작업에 대해 URL을 설정하는 방법 - Magento

은 일반적으로 내가 같은

http://www.mywebsite/index.php/subaction 
    or 
    http://www.mywebsite/index.php/mymodule/subaction 

참고 : 내가 만들지 않으 코드에서 URL을 설정하는 방법

http://www.mywebsite/index.php/mymodule/index/subaction 

로 페이지에 액세스 '서브 액션'으로 서브 액션을 가지고 새로운 컨트롤러 나는 같은 인덱스 컨트롤러에서 이것을 원한다.

+0

해당 제어기에 다른 Acion 함수를 생성하십시오. – Daya

+0

@Daya 새로운 컨트롤러 또는 actiona를 만들고 싶지 않습니다. 컨트롤러 동작의 단축 URL을 원합니다. –

답변

-3

당신은

protected function _initMyRoutes() { 
    $this->bootstrap('frontController'); 
    $front = $this->getResource('frontController'); 
    $router = $front->getRouter(); 

    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini', APPLICATION_ENV); 
    $router->addDefaultRoutes(); 
    $router->addConfig($config, 'routes'); 

    return $router; 

} 

하고 파일을 만들 CONFIGS 디렉토리에 다음

가 routes.ini이라고 할 사용하여 루트 부트 스트랩에

을하여이 작업을 수행하고 그 안에 다음과 같은

을 배치 할 수 있습니다
routes.myRoute.type = "Zend_Controller_Router_Route_Static" 
routes.myRoute.route = "/subaction/" 
routes.myRoute.defaults.module = "mymodule" 
routes.myRoute.defaults.controller = "index" 
routes.myRoute.defaults.action = "subaction" 

또는

당신은 트릭을해야하지만, 정말 통증이있을 수있는 경로를 사용하여 adviced 것이

protected function _initMyRoutes() { 
    $this->bootstrap('frontController'); 
    $front = $this->getResource('frontController'); 
    $router = $front->getRouter(); 
    $router->addDefaultRoutes(); 

    $route = new Zend_Controller_Router_Route_Static(
     'subaction', 
     array('module' => 'mymodule', 'controller' => 'index', 'action' => 'subaction') 
    ); 
    $router->addRoute('subaction', $route); 

    return $router; 

} 

으로 부트 스트랩에서 직접 경로를 추가 할 수 있습니다.

More about routes in the ZF manual

+0

답장을 보내 주셔서 감사합니다. 저는 magento에 새로 왔습니다. 어떻게 부트 스트랩을 수정할 수 있습니까? –

+0

열기 : 응용 프로그램 폴더에 있어야합니다 (Bootstrap.php라고합니다) – Ponsjuh

+0

Magento가 Zend Framework MVC 앱이 아니기 때문에이 답변이 올바르지 않습니다.이를 반영하기 위해 태그를 편집했습니다. Ponsjuh 부적절한 태그를 기반으로 질문에 대답하고 있었습니까 – benmarks

0

젠토 URL - 컨트롤러 일치하는 URL이 특정 형태를 가질 것으로 예상 표준 라우터를 통해 작동합니다.

  1. 되지 않는 설정 기반의 URL이
  2. 는 URL 패턴에 맞게 사용자 정의 라우터 클래스를 만듭니다 core_url_rewrite 테이블
  3. 에 URL 다시 쓰기 항목을 작성 다시 작성 : 당신은 당신이 당신의 처리에 몇 가지 옵션이 있음을 변경하려면

URL 일치가 어떻게 작동하는지 고려할 때 Magento가 기본 URL 계산 도구를 사용하여 URL을 작성하는 방법과 일치시킬 요청을 얻는 방법을 고려해야합니다.

+0

이러한 종류의 작업에 이러한 경로를 설정하는 데 XML을 사용할 수 있습니까? –

+0

['Mage_Core_Controller_Varien_Action :: _ rewrite()'] (https://github.com/benmarks/magento-mirror/blob/1.7.0.2/app/code/core/Mage/Core/Controller/Varien/Action.php)를 참조하십시오. # L864) – benmarks

관련 문제