magento控制器的动态路由器名称

magento控制器的动态路由器名称,magento,Magento,我如何创建一个自定义模块,该模块具有一个具有动态操作名称的控制器,用户可以在管理区域随意配置该控制器,并在自定义模块中自动更新该控制器?我认为您可以通过在控制器上使用magic php方法\u call来实现这一点 我假设您将操作名称存储在名为“mymodule/controller/action”的Magento配置中,因此可以使用以下方法获取值: Mage::getStoreConfig('mymodule/controller/action'); 然后是控制器,例如Mymodule/co

我如何创建一个自定义模块,该模块具有一个具有动态操作名称的控制器,用户可以在管理区域随意配置该控制器,并在自定义模块中自动更新该控制器?

我认为您可以通过在控制器上使用magic php方法
\u call
来实现这一点

我假设您将操作名称存储在名为“mymodule/controller/action”的Magento配置中,因此可以使用以下方法获取值:

Mage::getStoreConfig('mymodule/controller/action');
然后是控制器,例如Mymodule/controllers/TestController.php

然后在该控制器中添加如下方法:

public function __call($method, $arg) {
     if ($method == Mage::getStoreConfig('mymodule/controller/action')) {
           //Do whatever you want
     }
}

这将使您的控制器//在使用配置中指定的操作访问它时可以执行任何您想要的操作。基本思想是这样的。希望这有帮助。

您可以在控制器中重写此方法:

public function getActionMethodName($action)
{
    return 'indexAction';
}

public function indexAction()
{
    //action name
    var_dump($this->getRequest()->getActionName());
 }
然后将始终转到索引操作,在那里可以使用原始操作名称作为参数

然后:


会有用的

你能给我们展示一下你迄今为止的研究结果吗,这样我们就不会重复努力,试图用你已经发现的东西来回答你的问题了?还有,“最佳”是什么意思?你的成功标准是什么?嗨,罗伯特:这是理论上的。我目前的结论是连接到adminhtml表单保存事件,并用用户选择的新名称更新core_url_rewrite。我没有什么具体的东西可以展示,只是试图从经验丰富的magento开发人员那里获得意见,他们可以提供很好的建议。如果这冒犯了你,我会道歉。也许我应该删除这个问题,当我有一些解决方案要展示时再回到stackoverflow?我没有生气。但这并不是一个真正的建议专栏。我将尝试编辑你的问题,使其不那么“软”。编辑完成。这就是你真正想要的吗?