2013-07-25 46 views
2

我正在創建一個模塊,該模塊允許用戶將詳細信息輸入到表單中,並保存其詳細信息以允許在指定時間將相關信息轉發給他們。如何使用幫手

爲了取回形式的細節,並把它們添加到數據庫中,我跟着一個教程,並生成此代碼

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

看看這裏的http: //magentocodes.blogspot.in/2015/12/how-to-use-helpers-in-magento.html –

回答

1

1。這個代碼是否應該成爲幫手,如果不是它應該去哪裏?

您發佈IMO的實際代碼預定他們一個控制器動作中使用,因爲它實現了一個非常具體的生產流程:獲取用戶數據的特定情況下 - >保存,如果適用 - >重定向。

其次,幫手imo從不應該控制路線調度。它是幫手,而不是控制器。

我無法看到任何將該方法放入幫助程序中的用例會帶來任何優勢。

2。我如何使用代碼調用助手(或代碼需要去的位置)到 ?

你定義使用<prefcentre>作爲別名,所以如果你沒有安裝輔助Magento的標準方法和使用文件app/code/local/Ps/Prefcentre/Helper/Data.php,比你的helper方法是調用這樣的:

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

Thankyou的解釋。我認爲需要幫助者的原因是因爲我讀到了magento使用皮包骨頭的控制器,並且幫助者需要承擔一些控制器的負擔(或者我可能已經把它與聲音混合起來了) – tony09uk