2012-09-05 68 views
1

如果我有模块mymodule我有索引控制器。在我有子动作,作为“子操作”如何为特定的控制器动作设置url - Magento

通常我访问页面

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

如何设置URL从代码如

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

注::我不想创建新控制器我想要在同一个索引控制器中。

+0

在该控制器中创建另一个Acion函数 – Daya

+0

@Daya我不想创建新的控制器或动作,只是我想缩短控制器动作的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" 

,你可以直接在你的引导与

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,你可以给我进一步的细节,我如何修改bootstrap? –

+0

打开它:)它应该在应用程序文件夹(它被称为Bootstrap.php) – Ponsjuh

+0

这个答案是不正确的,因为Magento不是一个Zend Framework MVC应用程序 - 我编辑标签来反映这一点 - 应该指出,Ponsjuh回答基于不当标签 – benmarks

0

Magento的URL到控制器的匹配工作,通过它预计网址采用一种特定形式的标准路由器。如果你想改变,你必须随时为您提供几个选择:

  1. 已过时的基于配置的URL重写
  2. 在core_url_rewrite表
  3. 创建URL重写条目创建一个自定义类路由器相匹配的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

相关问题