Как получить данные из URL и передать их в метод блокировки


Мне нужно получить данные из URL-адреса и передать его методом блокировки для какой-либо операции. В основном мне нужно перечислить некоторый контент по определенному идентификатору в magento.

my controller function is
----------------------------

        public function showArchiveAction() {

            $id = $this->getRequest()->getParams('o');
            $this->loadLayout();
            $this->renderLayout();
          }

my block method
----------------
public function getMagazine($id)
     {

      $defaultMagazine = Mage::getModel('magazine/display')->getCollection()->load($id);
      $data = $defaultMagazine->getData();
      $defaultMagazineId = $data[0]['magazine_id'];
      $collection = Mage::getModel('magazine/page')->getCollection()->addFieldToFilter('magazine_id',$defaultMagazineId);

      return $collection;
      }
Author: Deepak Kumar, 2014-12-08

1 answers

Похоже, что вы правильно определяете личность.
Здесь у вас есть 2 варианта отправки данных в блок.
Вариант 1 - Использование register.

public function showArchiveAction() {
    $id = $this->getRequest()->getParams('o');
    Mage::register('current_magazine_id', $id);//register the id
    $this->loadLayout();
    $this->renderLayout();
}

Затем вы можете прочитать идентификатор в блоке или шаблоне:

$id = Mage::registry('current_magazine_id');
$magazine = $this->getMagazine($id);

Вариант 2 - присвоение идентификатора блоку.
Для этого подхода предположим, что у вашего блока есть имя magazine_details в макете.

public function showArchiveAction() {
    $id = $this->getRequest()->getParams('o');
    $this->loadLayout();
    $block = $this->getLayout()->getBlock('magazine_details');
    if ($block) {
         $block->setMagazineId($id);
    }
    $this->renderLayout();
}

Затем вы можете прочитать это значение в блоке или шаблоне следующим образом:

$id = $this->getMagazineId();
$magazine = $this->getMagazine($id);
 1
Author: Marius, 2014-12-08 07:36:36