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

时间:2016-12-28 07:21:17

标签: magento-1.9

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

    }

&GT;

应用程序/代码/本地/ 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();
?>

所以我正在访问block setFeedback()方法并设置$ _feedback值。我在setFeedback()和getFeedback()方法中打印一些字符串来检查我是否进入这些方法。显示打印字符串,这意味着我进入了方法但是当我为属性分配一些值并尝试打印属性时显示为NULL。

1 个答案:

答案 0 :(得分:0)

您是否可以尝试使用magento会话来设置要阻止的值。

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

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

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