관리자 작업 메서드를 `indexAction()` 이외의 다른 방법으로 지정할 수 있나요?

magento.stackexchange https://magento.stackexchange.com//questions/44755

문제

내 모듈에서는 다음과 같이 메뉴를 설정하고 있습니다.

 <menu>
     <catalog>
        <children>
            <rkt_arattr translate="title" module="rkt_arattr">
                <title>Manage My Custom Attribute</title>
                <sort_order>100</sort_order>
                <children>
                    <install_attr translate="title" module="rkt_arattr">
                        <title>Install My Attribute</title>
                        <action>adminhtml/catalog_arattr_install</action>
                        <sort_order>10</sort_order>
                    </install_attr>
                </children>
            </rkt_arattr>
        </children>
     </catalog>
 </menu>

집중해야 할 코드는 action

 <action>adminhtml/catalog_arattr_install</action>

이 값의 경우 내 URL은 다음과 같습니다.

www.mydomain.com/admin/catalog_arattr_install/index/key/[키_값]

이 ulr에 따라 Magento는 이와 같은 컨트롤러 설정을 기대합니다.

파일: app/code/local/Namespace/Modulename/controllers/Adminhtml/Catalog/Araattr/InstallController.php

<?php
class Namespace_Modulename_Adminhtml_Catalog_Arattr_InstallController extends Mage_Adminhtml_Contorller_Action
{
     public function indexAction()
     {

     }
}

허나 내가 원하는 건 이게 아닌데..내 URL 구문 분석이 필요합니다.

www.mydomain.com/admin/catalog_arattr/install/key/[키_값]

메뉴를 클릭하면 아래 메소드가 호출되기를 원한다는 의미입니다.

파일: app/code/local/Namespace/Modulename/controllers/Adminhtml/Catalog/ArattrController.php

<?php
class Namespace_Modulename_Adminhtml_Catalog_ArattrController extends Mage_Adminhtml_Contorller_Action
{
     public function installAction()
     {

     }
}

하지만 magento는 항상 다음을 찾는 것 같습니다. indexAction() 메뉴를 셋업할 때

메뉴를 클릭하면 내 사용자 정의 작업으로 이동할 수 있는 방법이 있나요?

도움이 되었습니까?

해결책

부품을 추가하는 것만큼 간단해야 합니다. action 마디.

<action>adminhtml/your_controller/your_action</action>

관리 섹션의 다운로드 부분이 어떻게 작동하는지 확인하세요.

<action>adminhtml/report_product/downloads</action>

여기서 컨트롤러는 Mage_Adminhtml_Report_ProductController 그리고 그 행동은 downloadsAction

다른 팁

당신의 action 경로는 adminhtml/catalog_arattr/install 정의하기 위해 install 경로의 섹션을 작업으로 사용합니다.각 / 슬래시는 모듈, 컨트롤러, 동작을 분리하므로 슬래시가 1개만 있으므로 동작은 다음과 같이 간주됩니다. indexAction().위 URL을 사용하면 요청이 다음을 타겟팅합니다. Namespace_Modulename_Adminhtml_Catalog_ArattrController 그리고 그 안에 installAction().물론 컨트롤러의 위치를 ​​한 단계 높은 디렉터리로 변경해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top