Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Magento管理路由扩展导致404

Magento管理路由扩展导致404
EN

Stack Overflow用户
提问于 2012-02-09 13:07:09
回答 1查看 2.8K关注 0票数 0

我目前正在参与magento的学习和开发,我在前台工作,但现在我正试图让后端的东西工作,我面临着一个挑战。根据文档和谷歌的说法,这应该很简单,但我仍然得到了404。

我已经创建了一个标准的文件结构,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app
  code
    local
      Mediafunction
        Csvengine
          Block
          controllers
            Adminhtml  
              IndexController.php
          etc
            config.xml
          Helper
            Data.php
          Model
          sql

我在config.xml中添加了一些东西来获得菜单中显示的模块的链接,这实际上是有效的,但当我单击链接(它解析为/admin/csvengine/index/key/foobar,就像它应该的那样)时,我只得到了一个404。

我尝试了各种方法,但我总是回到:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <Mediafunction_Csvengine before="Mage_Adminhtml">Mediafunction_Csvengine_Adminhtml</Mediafunction_Csvengine>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

它目前不工作( 404)。我的IndexController.php非常简单,它的唯一内容是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
class Mediafunction_Csvengine_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action
{
    public function indexAction()
    {
        $this->loadLayout();
        $this->renderLayout();
    }
}

更改类的名称也没有任何效果,而且我真的不知道我做错了什么。我怎么才能让它正常工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-09 13:24:58

您有两个简单的问题需要解决:-)

首先:大写。对于区分大小写的文件系统,每个模块文件和目录(除了controllersetc/*data/*sql/* )都必须大写。这样做的原因是直接实现和Varien_Autoload根据类名查找类定义的方式的结合(尽管前者适用于操作控制器类)。这仅仅意味着您的模块应该是Csvengine而不是csvengine,并且您必须在文件名和模块声明节点modules/Mediafunction_Csvengine中实现这一点。

其次:您的adminhtml控制器方法几乎是正确的。根据您的类名,您需要在controllers下有一个名为Adminhtml的文件夹。您还需要将admin/routers/adminhtml/args/modules/Mediafunction_csvengine的值更新为Mediafunction_Csvengine,因为它将与模块的代码池一起使用,以查找您的操作控制器目录。有关配置到目录的逻辑,请参阅Mage_Core_Controller_Varien_Router_Standard::collectRoutes()

编辑

我忘了指出你的路由(admin/csvengine/index)和你的控制器文件名的问题。在标准的路由到控制器映射中,Magento URL有五个区域:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://site.com/thisisparttwo/thisispartthree/thisispartfour/foo/1/bar/2/
Base URL       |front name   |controller path|method        | params...

您的控制器路径指向admin frontname下的CsvengineController类。您已经将控制器目录(包含我的更改)配置为Mediafunction/Csvengine/controllers/Adminhtml/,因此在该目录中,您将需要一个包含名为Mediafunction_Csvengine_Adminhtml_CsvengineController的类的CsvengineController.php

另一个注意事项通常是:Magento的admin ACL通过Mage_Adminhtml_Controller_Action::_isallowed()方法工作--无需在控制器中重新实现此方法,所有管理员用户都可以不受限制地访问路由。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9211401

复制
相关文章
「python」私有属性和私有方法(扩展知识)
3.代码:子类对象可以通过父类公有方法访问到父类私有属性和方法,在上述代码中并没有动过子类的任何代码。
python自学网
2022/09/07
1.2K0
「python」私有属性和私有方法(扩展知识)
java中构造方法私有化
1. 类中的封装性不光体现在对属性的封装上,实际上方法也是可以被封装的,当然在方法封装中也包含了对构造方法的封装。
用户7886150
2020/12/15
1.1K0
java9-可以在interface中定义私有方法了
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法。只允许我们定义public访问权限的方法、抽象方法或静态方法。但是从Java 9 开始,Interface 接口中允许定义私有方法和私有静态方法。下面我们就来为大家介绍其语法规则,和为什么要有这样的设计。
字母哥博客
2020/10/14
1.7K0
Java中的静态方法不能被子类重写
结论:Java中的静态方法不能被子类重写,实际上,子类的静态方法隐藏了父类的静态方法,因此父类的子类的静态方法同时存在,只不过父类通过类名(或对象名)调用的是父类的静态方法,子类通过类名(或对象名)调用的是子类的静态方法。
用户7886150
2020/12/07
2.3K0
Java中的原子类
在前面的内容中,我们已经学习了CAS的原理,所以对于学习本节来说会非常容易。本节介绍Java中的原子类是java.util.concurrent.atomic包下的对象,他们之所以有原子性的共性,都来源于CAS,可见CAS的重要性。对于原子类变量的操作是不会存在并发性问题的,不需要使用同步手段进行并发控制。它底层自身的实现即可保证变量的可见性以及操作的原子性,一般我们可以使用AtomicInteger,AtomicLong等实现计数器等功能,利用AtomicBoolean实现标志位等功能。
胖虎
2020/12/22
7030
Java中的原子类
关于使用MethodHandle在子类中调用祖父类重写方法的探究
这里直接看Son类的thinking方法(关于为何这样实现,在《深入理解Java虚拟机》读书笔记(七)--虚拟机字节码执行引擎(下)中也解释了)。
Java架构师必看
2021/11/29
9.5K0
java 中 List集合子类特点
目录  List集合常用子类:ArrayList,LinkedList 分别用ArrayList和LinkedList完成储存字符串并遍历 List集合常用子类:ArrayList,LinkedList 1.ArrayList:底层数据结构是数组,查询快,增删慢 2.LinkedList:底层数据结构是链表,查询慢,增删快 分别用ArrayList和LinkedList完成储存字符串并遍历 这里遍历方式有三种 分别是 迭代器  普通for循环 和增强for 这里我采用的是增强for循环 剩下的两种 请友
王同学要努力
2022/11/30
6630
java 中 List集合子类特点
Python中私有变量和私有方法芳
Python中要想定义的方法或者变量只能在类内部使用不被外部使用,可以在方法和变量前面加两个下划线,让其变为私有方法或私有变量。类外部可以通过 ”_类名__私有属性(方法)名“ 访问私有属性(方法)。
王大力测试进阶之路
2022/06/07
1.4K0
在Docker中创建私有仓库
随着创建的镜像日益增多,就需要有一个保存镜像的地方,这就是仓库。目前有两种仓库:公共仓库和私有仓库。最方便的就是使用公共仓库上传和下载镜像,下载公共仓库中的镜像不需要注册,但上传镜像到公共仓库是需要注册的。公共仓库中填写完成仓库的ID号、邮箱以及登录仓库的密码并在邮件中进行激活就可以上传自己的镜像。
星哥玩云
2022/07/28
2.8K0
在Docker中创建私有仓库
在Python中调用Java扩展包HanLP测试记录
最近在研究中文分词及自然语言相关的内容,关注到JAVA环境下的HanLP,HanLP是一个致力于向生产环境普及NLP技术的开源Java工具包,支持中文分词(N-最短路分词、CRF分词、索引分词、用户自定义词典、词性标注),命名实体识别(中国人名、音译人名、日本人名、地名、实体机构名识别),关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析(MaxEnt依存句法分析、神经网络依存句法分析)。
IT小白龙
2018/12/12
2K0
在Python中调用Java扩展包HanLP测试记录
Java 反射机制详解:私有方法调用头大?如何通过反射调用类中的私有方法?
在 Java 中如果我们使用 new 关键字调用构造函数对类进行实例化,我们就可以根据在这个类中的修饰符来访问类中定义的非私有方法。但是如果需要在其他类调用私有的方法,就可以利用 Java 中提供的反射来实现。
白鹿第一帅
2022/05/08
2.4K0
Java 反射机制详解:私有方法调用头大?如何通过反射调用类中的私有方法?
【Java】原子类
保证线程安全是 Java 并发编程必须要解决的重要问题。Java 从原子性、可见性、有序性这三大特性入手,确保多线程的数据一致性。
后端码匠
2023/02/27
1.2K0
【Java】原子类
Python类中的私有属性和私有方法
Python是面向对象的语言,在Python里一切皆对象,所以大部分情况下,我们都是通过类的方式来编程。
Python碎片公众号
2021/02/26
3K0
Python类中的私有属性和私有方法
创建子类对象时,父类构造函数中调用被子类重写的方法为什么调用的是子类的方法?
问题:为什么创建A对象的时候父类会调用子类方法? 但是:创建B对象父类会调用父类的方法?
zhangheng
2020/04/28
6.3K0
Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
FatherA.__init__(self) # 在子类中调用父类的方法:父类名.方法名称(参数)
授客
2019/09/11
3.2K0
探讨Java中的父子类转化问题
------------------------------------------------------------------------------------------------------------------------------------
用户6182664
2020/05/07
4.2K0
关于子类在继承父类属性和方法的基础上如何增加子类的属性和方法
如何用python程序实现子类在继承父类属性和方法的基础上同时增加子类自己的属性和方法?
算法与编程之美
2023/08/22
1870
关于子类在继承父类属性和方法的基础上如何增加子类的属性和方法
【Groovy】Groovy 扩展方法 ( Groovy 扩展方法引入 | 分析 Groovy 中 Thread 类的 start 扩展方法 )
Groovy 可以对 JDK 中的一些类进行 方法扩展 , 这些 JDK 自带类可以执行额外的扩展方法 ;
韩曙亮
2023/03/30
1.5K0
在Kubernetes集群中扩展CoreDNS
我正在分享在Kubernetes(1.12)中使用CoreDNS(1.2.5)运行的一些测试结果,以便为将CoreDNS调整到您的集群提供一些参考点。除了在默认配置中测试CoreDNS之外,我还测试了CoreDNS并启用了可选的autopath插件。autopath插件是一种优化,有助于透明地缓解由于Kubernetes臭名昭着的ndots:5问题而导致的Pod性能损失。这些测试在启用autopath时量化了内存/性能交易。
CNCF
2019/12/05
2.2K0
在Kubernetes集群中扩展CoreDNS
JAVA父类的静态方法能否被子类重写?
  在编译时所分配的内存会一直存在(不会被回收),直到程序退出内存才会释放这个空间,在实例化之前这个方法就已经存在于内存,跟类的对象没什么关系。子类中如果定义了相同名称的静态方法,并不会重写,而应该是在内存中又分配了一块给子类的静态方法,没有重写这一说,只是单纯的名字重复了。
孙晨c
2019/09/29
2.3K0

相似问题

java -允许在子类中扩展静态方法

31

在Java中扩展私有类

00

Java中的私有扩展

48

Java扩展ArrayList,使方法成为私有方法

40

可以在子类中重写私有方法吗?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文