2014-07-05 58 views
1

我剛開始學習magento.I在控制器中有一個數據列表。我想在我的視圖文件中顯示該列表。我怎樣才能做到這一點 ? 這是我的控制器操作類別。我在哪裏得到數據的數組。如何在magento的視圖文件中加載數據?

<?php 
class Company_Web_IndexController extends Mage_Core_Controller_Front_Action 
{ 
    public function indexAction() 
    {  
     $this->loadLayout();  
     $this->renderLayout(); 
    } 

    public function addcategoryAction() 
    { 
     if ($this->getRequest()->isPost()) 
     { 
      $data = $this->getRequest()->getParams(); 
      $catName = $data['catName']; 
      $status = $data['status']; 
      $data = array('name'=>$catName,'status'=>$status); 
      $model = Mage::getModel('web/web')->setData($data); 
      try { 
       $insertId = $model->save()->getId(); 
       $this->_redirect('web/index/category'); 
      } catch (Exception $e){ 
      echo $e->getMessage(); 
      } 
     } 
     $this->loadLayout();  
     $this->renderLayout(); 
    } 

    public function categoryAction() 
    { 
     $collection = Mage::getModel('web/web')->getCollection()->getData(); 
     $this->loadLayout();  
     $this->renderLayout(); 
    } 
} 

?> 

回答

2

Magento的工作以您剛纔提到您的PHTML文件來渲染類動作即

<web_index_category> 
<reference name="content"> 
<block type="core/template" name="category.block" template="customfile.phtml" /> 
</reference> 
</web_index_category> 

塊類型的內容,您可以drfine您custome類型

即類型塊類型,即=」網絡/類別」

,並創建一個街區

Company_Web_Block_Category extends Mage_Core_Block_Template 

這裏面在這裏創建一個函數,返回您的收藏 即

public function getCollection() 
{ 
return Mage::getModel('web/web')->getCollection()->getData(); 
} 

在你phtnl訪問使用此功能,

$this->getCollection() 

檢查更多的闡述 http://www.gravitywell.co.uk/blog/post/how-to-creating-your-own-custom-block-in-magento

http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-4-magento-layouts-blocks-and-templates

+0

謝謝夥計爲你提供幫助 – Nikul

1

您可以通過控制器做到這一點,但它更簡單,更符合Magento最佳實踐,通過塊將數據傳遞給模板。

要確定要渲染哪個模板和塊,請轉至System > Configuration > Advanced > Developer > Debug並啓用模板路徑提示(使用塊名稱)。現在,當您加載前端時,您會看到部分頁面的紅色邊框,這些邊框說明哪個區塊和模板組合正在加載網頁的各個部分。

Block對象的屬性和方法自動可用於該Block呈現的模板。

要使模板中的數據可用,只需將方法添加到呈現模板的塊中,然後從模板中調用該方法即可。

作爲快捷方式,您也可以直接在模板中直接撥打$collection_data = Mage::getModel('web/web')->getCollection()->getData();

欲瞭解更多信息,請參閱Magento for Developers: Part 4 - Magento Layouts, Blocks and Templates

相關問題