从自定义模块控制器设置块类属性

问题描述:

我想从控制器访问块类方法并设置一些值来阻止类属性。该方法正在被访问,但是当我尝试在.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。

难道你不能尝试magento会话,而不是设置一个值来阻止。

我认为在上述情况下,只有在您调用控制器时才会出现该值,对不对?

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

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