我正在创建一个模块,允许用户在表单中输入详细信息并保存其详细信息,以便在指定时间将相关信息转发给他们。
要从表单中检索详细信息并将其添加到数据库,我遵循了一个教程并生成了此代码
public function saveAction()
{
$title = $this->getRequest()->getPost('title');
$f_name = $this->getRequest()->getPost('f_name');
$l_name = $this->getRequest()->getPost('l_name');
if ( isset($title) && ($title != '') && isset($f_name) && ($f_name != '') && isset($l_name) && ($l_name != '') ) {
$contact = Mage::getModel('prefcentre/prefcentre');
$contact->setData('title', $title);
$contact->setData('f_name', $f_name);
$contact->setData('l_name', $l_name);
$contact->save();
$this->_redirect('prefcentre/index/emailPreferences');
} else {
$this->_redirect('prefcentre/index/signUp');
}
}
教程说要在saveAction中将它放入控制器,并且工作正常。然而,从我非常有限的理解,它将进入帮助者,我将从控制器调用助手
我将上面的代码放在我的助手中,并使用以下
从saveAction中调用它Mage::helper('module/helpername');//returned blank screen and did not save
我也试过
Mage::helper('module/helpername_function');//returned error
我的配置
<helpers>
<prefcentre>
<class>Ps_Prefcentre_Helper</class>
</prefcentre>
</helpers>
1。这段代码应该放在帮助器中,如果不是它应该去哪里?
2。如何调用帮助程序(或代码需要的位置)来使用代码?
答案 0 :(得分:1)
1。这段代码应该放在帮助器中,如果不是它应该去哪里?
您发布的实际代码imo预定在控制器操作中使用,因为它实现了一个非常具体的流程:获取特定案例的用户数据 - &gt;保存(如果适用) - &gt;重定向。
其次,帮手imo永远不应该控制路线调度。它是一个帮助者,而不是一个控制者。
我没有看到将方法放入帮助器的任何用例都会带来任何好处。
2。如何调用帮助程序(或代码所需的位置) 利用代码?
您的定义使用<prefcentre>
作为别名,因此如果您使用Magento标准方式设置帮助程序并使用文件app/code/local/Ps/Prefcentre/Helper/Data.php
,那么您的帮助程序方法可以像这样调用:
Mage::helper('prefcentre')->myMethodName();