2016-12-28 75 views
0

我想從控制器訪問塊類方法並設置一些值來阻止類屬性。該方法正在被訪問,但是當我嘗試在.phtml文件中打印屬性時,它是NULL。 這裏是我的代碼: 應用程序/代碼/本地/ Amactech /活動/控制器/ IndexController.php從自定義模塊控制器設置塊類屬性

<?php 

    class Amactech_Events_IndexController extends Mage_Core_Controller_Front_Action{ 
     public function indexAction(){ 

      $block=$this->getLayout()->createBlock('events/events'); 
      $block->setFeedback("wrwqerqwer fasdfasdf vxzcvzxcv"); 

      $this->loadLayout(); 
      return $this->renderLayout(); 
     } 

    } 

>

應用程序/代碼/本地/ Amactech /活動/座/ Event.php?

<?php 

    class Amactech_Events_Block_Events extends Mage_Core_Block_Template{ 

    public $_feedback; 

    public function setFeedback($feedback){ 
     echo $feedback; 
     $this->_feedback = $feedback; 
    } 

    public function getFeedback(){ 
     echo "get feedback"; /*This line is being printing which means I am getting in this method*/ 
     return $this->_feedback; 
    } 


    } 

?> 

應用程序/設計/前端/基/默認/模板/事件/ events.phtml

<?php 
    echo $this->getFeedback(); 
?> 

所以我正在訪問塊setFeedback()方法並設置$ _feedback值。我在setFeedback()和getFeedback()方法中打印了一些字符串來檢查我是否正在使用這些方法。打印字符串顯示,這意味着我正在進入方法,但是當我分配一些值給屬性,並嘗試打印屬性顯示NULL。

回答

0

難道你不能嘗試magento會話,而不是設置一個值來阻止。

我認爲在上述情況下,只有在您調用控制器時纔會出現該值,對不對?

Mage::getSingleton('core/session')->setFeedback($inputMessage); // In controller 

Mage::getSingleton('core/session')->getFeedback($inputMessage); // In PHTML