我正在提交表格并从模型中获取结果。我想在phtml文件中显示结果,即提交后的整个集合需要在phtml文件中
这是我的代码
控制器
$this->loadLayout();
if($this->getRequest()->isPost())
{
$post = $this->getRequest()->getPost();
$data = array();
$collection = Mage::getModel('searchservice/service')->getCollection();
$collection->addFieldToFilter('compstate',array('eq'=>$post['input1']));
Mage::getSingleton('core/session')->addSuccess(Mage::helper('searchservice')->__('Displaying Your Result'));
$this->renderLayout();
}
我想要从收集过滤器返回的aaray中的数据,并在使用foreach的phtml中使用。
答案 0 :(得分:4)
您可以使用magento注册表来设置和获取值:
设置值(在控制器中)
Mage::register('var_name',$var_value);
获取值(在phtml / view中)
$var_value = Mage::registry('var_name');
你可以在
找到更多 http://alanstorm.com/magento_registry_singleton_tutorial
https://stackoverflow.com/a/18157176/725306
答案 1 :(得分:0)
这是我找到的解决方案 在控制器中:
Mage::register('data', $collection);
在视图中
$data = Mage::registry('data');
所以代码变成了
if($this->getRequest()->isPost())
{
$post = $this->getRequest()->getPost();
$data = array();
$collection = Mage::getModel('searchservice/service')->getCollection();
$collection->addFieldToFilter('compstate',array('eq'=>$post['input1']));
foreach ($collection as $record)
{
$data[] = $record->getProfileurl();
}
Mage::register('data', $data);
Mage::getSingleton('core/session')->addSuccess(Mage::helper('searchservice')->__('Displaying Your Result'));
$this->renderLayout();
}