magento二次开发 - 访问模块中的controller

magento与别的框架的不同之处之一:路由规则通过xml文件进行配置
参考:《深入理解magento 第二章》

controller文件

之前我们新建了如下的模块,


完善一下HelloWorldController

<?php
//自己定义的前台的控制器都应继承Mage_Core_Controller_Front_Action
//类名称的格式为:模块名字空间_模块名称_controller名称
class Tencent_App_HelloWorldController extends Mage_Core_Controller_Front_Action
{
    //默认控制器
    public function indexAction()
    {
        echo '默认的action,如果没有指定action的话就会访问它';
    }

    public function sayAction()
    {
        echo "Hello World!";
    }

}

如何访问controllers下的HelloWorldController.php呢?

修改模块配置文件的路由规则

编辑app\etc\config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Tencent_App>
            <version>0.0.1</version>
        </Tencent_App>
    </modules>

    <frontend><!--frontend是网站前台,admin是网站后台,install是magento的安装程序-->
        <routers>
            <Tencent_App><!--路由的标识,要唯一 -->
                <use>standard</use>
                <args>
                    <module>Tencent_App</module><!--模块-->
                    <frontName>app</frontName><!--在url中通过app就可以访问到Tencent_App-->
                 </args>
            </Tencent_App>
        </routers>
    </frontend>

</config>

同样,清除magento的缓存使得配置文件生效之后,我们在浏览器上请求
locahost/magento/app/helloWorld/say
那么就会访问到HelloWorldController下的sayAction
而请求

localost/magento/app/helloWorld

localhost/magento/app/helloWorld/index
就会访问到HelloWorldController下的indexAction

注:本地域名需要根据本地电脑的配置进行替换

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,301评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,950评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,014评论 6 342
  • ​谁的缺点暴露无遗 文/月生 1 陈诚一回家就成了雪人,冷冰冰的。我应该就是堆雪人的,虽然我没往他身上堆雪,还投怀...
    月生阅读 3,853评论 2 50
  • 政府宣传 社长 记者 日报. 省市长对我们认可 东方泽养源在做养老 联盟商家做服务,赞扬第一批签约商家,商家...
    有来复有去阅读 760评论 0 0