【问题标题】:How do I get field data in Magento from a custom module?如何从自定义模块获取 Magento 中的字段数据?
【发布时间】:2012-07-09 15:46:43
【问题描述】:

我对 Magento 开发非常陌生(这是我的第一个模块)。该模块的目的是解决我们在原始模块中遇到的一些问题,同时不对模型/控制器进行任何更改。我正在修改这个现有的模板,但我似乎找不到检索字段的方法。模板正在使用:

$this->getChildHtml('submit_button');

提交数据。这最终会调用一个 javascript/ajax 函数,这几乎让我陷入了死胡同。我只是想获得以下值,比如说:

<textarea name="thing[other]" .../>

我将如何检索该值以便我的模型可以操纵它?覆盖控制器不是一个选项,这个页面本质上是另一个使用相同控制器的副本。该控制器的功能是该控制器所需的,而该控制器不需要。

我的另一个选择是覆盖模板。我的问题是原始模块使用观察者来覆盖模板,我不知道如何覆盖它。

【问题讨论】:

  • 您不会在模板中而是在控制器中检查发布的数据——您需要创建控制器来执行任何任务……
  • @feeela 我查看了 sales_order 和 custommodulesales_order 的控制器,但找不到与获取帖子数据相关的任何内容。
  • 在扩展 Mage_Adminhtml_Controller_Action: $this-&gt;getRequest()-&gt;getPost();的类中的一些动作
  • 该模块确实有一个扩展 Mage_Adminhtml_Controller_Action 的类,但它根本不处理发布数据。我猜这意味着他们一开始就没有覆盖它。我还想到,我可能不会覆盖该功能,因为该网站的另一部分仍在使用它。 @feeela

标签: php javascript ajax zend-framework magento


【解决方案1】:

您需要创建一个控制器并将表单操作设置为发布到此控制器。然后,您可以通过调用访问帖子数据:

$postData = $this-&gt;getRequest()-&gt;getPost();

【讨论】:

  • 有趣的是,这个模板根本不使用帖子,甚至根本不使用表单。它正在调用 ajax/js 脚本并完全绕过 magento 模块。我正在修改模板以包含一个表单并更改提交属性,以便它只会发布到我的模块。谢谢。
  • 如果你正在修改第三方扩展,到处发现脏代码并不罕见。好东西你想学习正确的方法,即使它肯定会花费更多时间
  • 有点担心时间紧迫,但我正在努力让它正常下来。我基本上是一名实习生,所以我想尽可能多地从中受益。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-04
相关资源
最近更新 更多