如何使用帮助器

时间:2013-07-25 10:34:26

标签: magento-1.7 helper

我正在创建一个模块,允许用户在表单中输入详细信息并保存其详细信息,以便在指定时间将相关信息转发给他们。

要从表单中检索详细信息并将其添加到数据库,我遵循了一个教程并生成了此代码

    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。如何调用帮助程序(或代码需要的位置)来使用代码?

1 个答案:

答案 0 :(得分:1)

  

1。这段代码应该放在帮助器中,如果不是它应该去哪里?

您发布的实际代码imo预定在控制器操作中使用,因为它实现了一个非常具体的流程:获取特定案例的用户数据 - &gt;保存(如果适用) - &gt;重定向。

其次,帮手imo永远不应该控制路线调度。它是一个帮助者,而不是一个控制者。

我没有看到将方法放入帮助器的任何用例都会带来任何好处。

  

2。如何调用帮助程序(或代码所需的位置)   利用代码?

您的定义使用<prefcentre>作为别名,因此如果您使用Magento标准方式设置帮助程序并使用文件app/code/local/Ps/Prefcentre/Helper/Data.php,那么您的帮助程序方法可以像这样调用:

Mage::helper('prefcentre')->myMethodName();