Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento url路由:如何定位给定url的控制器/视图_Magento_Templates_Model View Controller_Routing - Fatal编程技术网

Magento url路由:如何定位给定url的控制器/视图

Magento url路由:如何定位给定url的控制器/视图,magento,templates,model-view-controller,routing,Magento,Templates,Model View Controller,Routing,我是magento的新手,正在尝试根据以下url查找文件/代码: somedomainfortesting.com/index.php/catalogsearch/result/?q=test 为了安全起见,我只是在上面放了一个测试域名,但通常我只是试图找到上面url的文件(视图/控制器)。我不熟悉magento。这很复杂,但一般来说,magento URL有三个部分(Zend Framework 1风格) “前端名称”通常标识您可以在其中找到控制器的模块文件夹 例如,可以在中找到frontn

我是magento的新手,正在尝试根据以下url查找文件/代码:

somedomainfortesting.com/index.php/catalogsearch/result/?q=test

为了安全起见,我只是在上面放了一个测试域名,但通常我只是试图找到上面url的文件(视图/控制器)。我不熟悉magento。

这很复杂,但一般来说,magento URL有三个部分(Zend Framework 1风格)

“前端名称”通常标识您可以在其中找到控制器的模块文件夹

例如,可以在中找到frontname为
catalogsearch
的URL控制器

#File: app/code/core/Mage/CatalogSearch/controllers/
您应该知道这一点,因为在
Mage\u CatalogSearch
配置文件中,有一个已配置的frontname(
CatalogSearch

最后,操作名称确定控制器Magento中将调用的方法。在您的示例中,没有操作名称,因此Magento默认为名称
索引
,这意味着调用的是
索引操作

#File: app/code/core/Mage/CatalogSearch/controllers/ResultController.php
public function indexAction()
{
    //...
}
您会注意到,我在上面使用了术语“一般标识”——这是因为还有很多其他情况下,多个模块可以声明一个frontname,或者用户可以重写URL以转到其他地方。如果你对学习更多和深入挖掘感兴趣——我的原创仍然是一个很好的开始(内容是过时的,但仍然准确)。如果你在那之后没有受伤,你可以阅读Magento如何处理URL路由,从上到下

最后,还有一点自我服务,您可以签出——这是我的商业Magento调试扩展,包括加载页面的特定控制器的信息

您可以使用免费演示轻松查看Magento默认设置,如果您认为它值得/有用,还可以使用自己的系统


希望有帮助

此外,您可以在这里找到通过启用路径点击来渲染内容的模板:系统>配置>开发人员,将配置范围更改为默认存储视图,然后查找路径提示设置并启用它。

感谢您的详细回答,但我访问了ResultController.php文件并注释掉了所有内容,结果页面也没有变化。模板是否有可能覆盖magento核心内容?@dave这是magento的诀窍——它将在很大程度上取决于您的特定系统。在你的系统里,我的头都快掉下来了。可能会有一个类重写;2.您可能正在编译模式下运行。3.Magento可能正在使用整页缓存;4.你可能在涂清漆。5.可能存在一个本地代码池覆盖,这就是我构建的原因,并推荐Commerce Bug——它将具体告诉您系统正在做什么。(在
index.php
末尾添加
var\u转储(获取包含的\u文件();
可能有助于跟踪所使用的特定控制器文件)
#File: app/code/core/Mage/CatalogSearch/etc/config.xml
    <routers>
        <catalogsearch>
            <use>standard</use>
            <args>
                <module>Mage_CatalogSearch</module>
                <frontName>catalogsearch</frontName>
            </args>
        </catalogsearch>
    </routers>    
app/code/core/Mage/CatalogSearch/controllers/ResultController.php 
#File: app/code/core/Mage/CatalogSearch/controllers/ResultController.php
public function indexAction()
{
    //...
}