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