Magento 自定义模块,致命错误:调用成员函数 setFormAction()

2023-12-07

当我点击这个 url 上的模块时http://localhost/xxx/index.php/TradeEnquiry我收到这个错误

致命错误:调用成员函数 setFormAction() 对非对象进行 C:\wamp\www\stockdisplays\app\code\local\Stock\Tradeenquiry\controllers\IndexController.php 55号线

第55行是这样的:

 $this->getLayout()->getBlock('tradeenquiryView')
            ->setFormAction( Mage::getUrl('*/*/post') );

这是我的布局 xml 中的一个片段:

<default>
    <reference name="footer_links">
        <action method="addLink" translate="label title" module="tradeenquiry">
                <label>Trade Enquiry</label>
                <url>tradeenquiry</url>
                <title>Trade Enquiry</title>
                <prepare>true</prepare>
            </action>
    </reference>
</default>

<tradeenquiry_index_index>
    <reference name="root">
        <action method="setTemplate"><template>page/2columns-right.phtml</template></action>
        <action method="setHeaderTitle" translate="title" module="tradeenquiry"><title>Trade Enquiry</title></action>
    </reference>
    <reference name="content">
        <block type="core/template" name="tradeenquiryView" template="tradeenquiry/view.phtml"/>
    </reference>
</tradeenquiry_index_index>

我不明白问题是什么?该块正确命名为“tradeenquiryView”。我唯一能想到的是布局xml以某种方式被缓存?因为我必须点击 /TradeEnquiry 上的模块,而不是像我在布局 xml 中所述的 /tradeenquiry 上的模块,所以它几乎就像使用旧版本一样?


就像 Magento 的所有事情一样,发生这种情况的原因有很多。

首先,在命名块时我会避免使用大写字母“V”。虽然我不think这会导致问题(因为名称是对 URI(core/textlist 等)和模板文件路径(/path/to/template.phtml)的引用),小写/下划线的布局系统中有一个事实上的命名约定某人、某个地方(即 Varien)可能认为是强制约定的名称。

第二,你打过电话吗?

$this->loadLayout();

在您尝试设置表单操作的行之前的控制器操作中?在您执行此操作之前,您的布局对象将不会实例化和/或引用您的块对象,这意味着

$this->getLayout()->getBlock('...')

总是会返回 false。

其他调试技巧。请尝试以下操作,以确保您能够恢复您认为应该参加的课程。

die(get_class($this->getLayout()->getBlock('root')));                                   
die(get_class($this->getLayout()));         

最后,如果这一切都失败,请转到布局对象的源

app/code/core/Mage/Core/Model/Layout.php

并看一下 getBlock 方法

public function getBlock($name)
{
    if (isset($this->_blocks[$name])) {
        return $this->_blocks[$name];
    } else {
        return false;
    }
}

并开始抛出调试语句,看看您是否可以找出系统不返回对您的块的引用的原因。不要忘记删除/不签入调试语句,因为这是核心系统代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Magento 自定义模块,致命错误:调用成员函数 setFormAction() 的相关文章

  • 如何为 Lumen 的封闭路线指定路线名称?

    您好 我有以下流明路线 router gt get end function Illuminate Http Request request use router controller router gt app gt make App H
  • 如何使用注释从类的属性值派生 xml 元素名称?

    我有 具有 id 值和名称的属性 我可以使用 XmlElement XmlArray C 注释用一个类来表示所有这些吗 我想从类属性派生 xml 元素名称name 我的课程看起来像 public class Property public
  • Instagram 如何使用 Amazon S3?

    在将文件上传到 Amazon S3 时 我需要深入了解 Instagram 的工程 我刚刚开始使用 S3 我认为 Instagram 是一个值得效仿的好模式 因为他们每天上传数千张图片 我的应用程序有点相似 用户上传图片 可以删除自己的图片
  • PHP/MySQL:检索邻接列表模型中的单个路径

    有没有什么有效的方法可以在不限制深度的情况下根据节点的ID检索邻接列表模型中的单个路径 就像如果我有一个名为 Banana 的节点的 ID 我可以获得以下路径 Food gt Fruits gt Banana 如果不可能的话也不是什么大问题
  • 在 XSLT 函数中处理空序列

    我有一个 XSLT 函数 它检查发送的参数是否采用 YYYYMMDD 格式 在某些情况下 我没有获得该函数的任何值 在这些情况下 SAXON 会抛出以下错误 不允许空序列作为 cda isValidDate 的第一个参数 有什么建议如何处理
  • PSR-4 代码库中条令生成器的解决方法

    在 Windows 机器上使用 Symfony 2 和 Doctrine 我正在尝试 从现有模式生成实体 php app console doctrine mapping import force CoreBundle annotation
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • PHP 中的正则表达式:找到第一个匹配的字符串

    我想在非常长的文本中找到第一个匹配的字符串 我知道我可以使用 preg grep 并获取返回数组的第一个元素 但是 如果我只需要第一场比赛 或者我知道提前只有一场比赛 那么这样做效率不高 有什么建议吗 预匹配 http www php ne
  • jQuery和PHP中如何知道返回数据是Json还是String?

    我想在客户端 jQuery 检查 PHP 函数返回的数据是否是 Json 对象或 String 来分配不同的函数 如果 json 的格式不正确 jQuery 的 parseJson 将生成异常 您可以将调用包装在 try catch 块中
  • WooCommerce:用文本覆盖购物车价格

    我们有很多产品具有以下功能 No price 零价格 我们让它们可以通过内置挂钩购买 但购物车仍然将它们显示为具有0 price结账时 我们希望购物车和结帐摘要显示 特殊订单 或任何其他文本 但 WooCommerce 似乎使基于文本的价格
  • CSV 从 UTF8 到 ISO-8859-1

    我正在尝试修改我的 CSV 导出 但它不会将我的 CSV 从 UTF 8 转换 保存为 ISO 8859 1 请问我做错了什么吗 实际上自从修改了这个之后 我得到了一个空的 CSV 文件 php 7 0 x function my Gene
  • 登录后所有页面都应该是https吗?

    这有点难以解释 但我会尽力 有一个网站 每个页面上都有登录表单 其中包含用户名 密码字段 这些页面未使用 SSL 用户填写用户名 密码并提交表单后 表单将被发送到 https 的身份验证页面 对于这种情况我有几个疑问 向 https 页面提
  • 使用 php 和 symfony 从数组创建 Excel 文件

    我正在尝试使用 PHP 和 symfony 将数组导出为 XLS 文件 如下面的代码所示 创建 XLS 文件后 我只能获取数组的最后一行 并且它显示在文件的第一行中 似乎 lignes 变量没有增加 我不明白出了什么问题 有人可以帮忙吗 f
  • 解析 PHP 响应:未捕获的语法错误:意外的标记 <

    我正在使用 AJAX 来调用 PHP 脚本 我唯一需要从响应中解析的是脚本生成的随机 ID 问题是 PHP 脚本会引发许多错误 这些错误实际上很好 不会妨碍程序功能 唯一的问题是当我跑步时 parseJSON response I get
  • 避免 SQLite3 中的 SQL 注入

    我正在尝试找出一种避免 SQL 注入的好简单方法 到目前为止我只能提出两个想法 对用户输入进行 Base64 编码 其实不想这样做 使用正则表达式删除不需要的字符 目前正在使用这个 不确定是否100 安全 这是我当前的代码
  • 如何使用 PDO 动态构建查询

    我正在使用 PDO 并想做这样的事情 query dbh gt prepare SELECT FROM table WHERE column value query gt bindParam table tableName query gt
  • php向多个收件人发送邮件

    我可以通过在邮件程序中定义 id 来将电子邮件发送到一个电子邮件 id 但是当用户在表单中键入 消息和电子邮件 id 时 我无法理解如何发送到多个收件人 例如 我正在显示一个带有两个文本区域的表单 一个用于电子邮件 ID 一个用于自定义消息
  • PHP 中的嵌套 JSON 输出

    我正在为 iOS 应用程序构建 API 并尝试将 mySQL 数据转换为 JSON 字符串进行处理 所需的输出将需要顶级订单详细信息 例如客户名称和地址 然后是订购的产品子数组 我需要的两个表中有相当多的字段 我希望拥有所有字段 我已经构建
  • 如何显示不同页眉的页面? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在为我的学校项目开发网站 但我遇到了一个问题 我在每个页面上显示一个标题 我的标题之一包含登录表单 另一标题包含用户名 搜索栏等 问题是
  • 处理查询字符串参数时 Codeigniter 缓存问题

    问候 我正在编写一个 CI Web 应用程序 它实现标准文件缓存功能 如下所示 this gt output gt cache n 我使用了段和查询字符串参数的组合 因此似乎遇到了问题 我在用例和输出类代码中看到的是 缓存仅基于段 像这样

随机推荐

  • 使用序列化在实体框架中的两个 ObjectContext 之间复制实体

    Preface 我知道这可能已经被视为疯狂的问题 但我正在寻找最有教养的建议和PROVEN关于如何进行复印的建议ALL来自某个实体的数据 即所有实体和关系 ObjectContext到一个新创建的ObjectContext在另一家商店支持
  • 如何将 json 字符串发送回 jquery

    我需要将一些数据发送到外部 php 页面 并且该页面必须将所需的数据发送回 jQuery 我的问题是如何将数据从外部页面发送回发送它的页面上的 jQuery 这是将数据发送到外部页面的 jQuery 代码 function LoadImag
  • GWT 向导未显示在 Eclipse 向导菜单中

    谷歌文档http code google com webtoolkit tools gwtdesigner wizards gwt uibinder dialogbox html在 Eclipse 中显示 GWT 向导 但是 在我的系统上
  • Murmur3 散列 Python 和 Java 实现之间的不同结果

    我有两个不同的程序 希望分别在 Python 和 Java 中使用 Murmur3 哈希相同的字符串 Python 版本 2 7 9 mmh3 hash128 abc 给出 792679617637421130190083470206475
  • 每个类在jar文件中都有两个类文件

    我有一个 jar 文件 每个 java 文件有两个类文件 Java Foo java Bar java 类文件 Foo class Foo class Bar class Bar class 我已经验证每个类只有一个 java 文件 jav
  • 将 powershell 变量值返回给 c# 应用程序

    我正在从 C 运行 powershell 脚本 string scriptPath script myscript ps1 Runspace runspace RunspaceFactory CreateRunspace runspace
  • g++ 的 json-spirit 链接器标志是什么?

    我在任何地方都找不到这个 我已经在我的 ubuntu 服务器上安装了 json spiritapt get install json spirit dev 必须与什么链接器标志一起使用g 使用 json spirit 唯一的图书馆列在该包中
  • WebLogic 的 JavaEE API

    有不同的服务器特定 JavaEE API 实现 例如 glassfish javaee 或 jboss javaee 它们作为单独的 jar 文件分发 并且可以使用 Maven 依赖项附加到某些项目 有没有专门为WebLogic AS设计的
  • UDP 数据包未被 Wireshark 捕获,但被 UDP 应用程序捕获

    我有一个设计并运行的应用程序 它在端口上接收 UDP 广播 该应用程序一直工作得很好 但我想将应用程序收到的数据包与 Wireshark 捕获进行比较 我试图确保以最小的数据丢失捕获尽可能多的数据包 我最初认为我应该运行 Wireshark
  • 使用 GraphicsServices.h/GSEvent 以及使用 Xcode 编译 CLI iPhone 工具

    我将其发送给 KennyTM 在 GitHub 上有所有私有框架标头 但我想我也会在这里问 以防万一有人有一些好的想法或任何方法来帮助我 我正在尝试编写一个命令行实用程序 它发送 GSEvents 来操作键盘 触摸 拖动屏幕上的元素以及操作
  • 即使使用 CREATE 表授予,立即执行也会失败

    我在使用存储过程中的立即执行命令创建表时遇到问题 但是我收到 权限不足 的错误 我检查了其他线程并确保用户具有授予它的 CREATE TABLE 权限 但是我仍然看到同样的错误 SQL gt select from USER SYS PRI
  • WooCommerce Cart - 动态价格变量传递到自定义价格挂钩

    我在变量中获取动态自定义价格 我想将其传递给中的挂钩函数woocommerce before calculate totals钩在购物车中 但它不起作用 这是我的代码 add 200 I want to pass this variable
  • java.lang.NullPointerException:尝试调用虚拟方法“com.google.firebase.database”

    我正在尝试从 Firebase 数据库将数据检索到 RecyclerView 中 但遇到此错误 java lang NullPointerException 尝试调用虚拟方法 com google firebase database Dat
  • Web 服务与类文件 - 性能

    我试图找出执行此操作的最佳方法 我正在开发一个项目 并将所有数据访问层代码放入 ASMX 文件中 以使它们与我的表示层分开 我从后台代码调用所有方法并使用类文件等 Web 服务 我根据另一位开发人员的工作遵循这一做法 到目前为止 对此有两种
  • 如何在类声明之外定义 sfinae 类的成员?

    阅读完诸如此类的问题后sfinae 位于类体外部定义的成员函数 这不是同一个问题 另外 当使用 SFINAE 方法仅启用算术类型的类时 我仍然没有找到在类声明之外定义成员函数体的好方法 include
  • Swift 3 隐式解包选项导致错误的字符串插值

    Why are 隐式解包选项在 Swift 3 中使用字符串插值时未解包 Example 在 Playground 中运行以下代码 var str String str Hello print The following should no
  • 用facet对y轴进行排序

    我有这个数据框 library dplyr dat data frame parent c J J F F group c A 4 C 3 A 4 D 5 value c 1 2 3 4 count c 4 3 4 5 dat gt arr
  • IE 8 支持 JSON.stringify() 吗?

    我需要使用 JSON stringify Chrome Safari 和 Firefox 应该支持 我认为IE8也支持JSON对象 我认为 IE7 和 6 没有 所以我这样做 所以 我认为只有 IE6 和 7 才会导入外部 JavaScri
  • Mercurial自动更新问题

    我们开始使用 Mercurial 进行源代码控制 我们已将 HGRC 配置文件配置为在推送到 中央 存储库后自动更新 对于某些 PC 我们会收到以下错误消息 warning changegroup hook exited with stat
  • Magento 自定义模块,致命错误:调用成员函数 setFormAction()

    当我点击这个 url 上的模块时http localhost xxx index php TradeEnquiry我收到这个错误 致命错误 调用成员函数 setFormAction 对非对象进行 C wamp www stockdispla