Как получить данные из 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;
}
1
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