如何从控制器Magento传递phtml文件中的结果?

时间:2014-05-14 05:33:36

标签: php magento magento-1.8

我正在提交表格并从模型中获取结果。我想在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中使用。

2 个答案:

答案 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();

    }