gpt4 book ai didi

Magento url 路由 : how to locate the controller/views for a given url

转载 作者:行者123 更新时间:2023-12-02 08:27:25 25 4
gpt4 key购买 nike

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

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

为了安全起见,我只是在上面放了一个测试域名,但一般来说,我只是想找到上面 url 的文件( View / Controller )。我是 magento 的新手。

最佳答案

这很复杂,但一般来说,Magento URLs 分为三部分(Zend Framework 1 风格)

http://somedomainfortesting.com/index.php/front-name/controller-name/action-name

“前面的名称”通常标识您可以在其中找到 Controller 的模块文件夹。

例如,带有 catalogsearch 的 URL 的 Controller 因为前面的名字可以在

#File: app/code/core/Mage/CatalogSearch/controllers/

你会知道这一点,因为在 Mage_CatalogSearch配置文件,有一个配置的名字(<frontName>catalogsearch</frontName>)

#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>

URL 的下一部分定义了 Controller 名称。 Controller 名称决定 Controller 文件夹中的特定 Controller 文件。同样,在您的示例中, Controller 名称是 result , 所以你可以在下面的文件中找到 Controller ( ResultController.php )

app/code/core/Mage/CatalogSearch/controllers/ResultController.php 

最后, Action 名称决定了 Magento 将调用 Controller 中的哪个方法。在您的示例中,没有操作名称,因此 Magento 默认名称为 index ,这意味着它是 indexAction这就是所谓的

#File: app/code/core/Mage/CatalogSearch/controllers/ResultController.php
public function indexAction()
{
//...
}

您会在上面注意到我使用了术语通常标识——这是因为还有很多其他情况,其中多个模块可以声明一个前名,或者用户可以重写 URL 以转到其他地方。如果您有兴趣了解更多信息并深入挖掘——我的原创 Magento for PHP MVC Developers blog series仍然是一个很好的起点(内容已过时,但仍然准确)。如果在那之后你没有伤痕累累,你可以阅读 In Depth Magento Dispatch其中涵盖了 Magento 如何从上到下处理 URL 路由。

最后,有点自私,你可以结账 Commerce Bug -- 这是我的商业 Magento 调试扩展,包含有关加载页面的特定 Controller 的信息。

enter image description here

您可以使用免费演示轻松查看 Magento 默认值,以及 buy a copy对于您自己的系统,如果您认为它值得/有用。

希望对您有所帮助!

关于Magento url 路由 : how to locate the controller/views for a given url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30825472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com