Как передать результат в файл phtml из контроллера Magento?

Я отправляю форму и получаю результат от модели. Я хочу отобразить результат в файле 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 возвращались из фильтра коллекции и использовались в phtml с foreach.


person rohitnetgains    schedule 14.05.2014    source источник


Ответы (2)


вы можете использовать реестр magento для установки и получения значений как:

установить значение (в контроллере)

Mage::register('var_name',$var_value);

получить значение (в phtml/представлении)

$var_value = Mage::registry('var_name');

больше вы можете найти на

http://alanstorm.com/magento_registry_singleton_tutorial
https://stackoverflow.com/a/18157176/725306

person Mohammad Faisal    schedule 14.05.2014

Вот решение, которое я нашел в контроллере:

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

    }
person rohitnetgains    schedule 14.05.2014
comment
я только что ответил на него раньше тебя - person Mohammad Faisal; 14.05.2014