在块中加载控制器功能,从块加载到.phtml

时间:2013-10-05 07:14:19

标签: magento magento-1.7

控制器视图。我在 indexController

中使用了以下功能
 public function viewAction($string){
 $stro  = $this->getRequest()->getParams('key');
 if($stro != null){
  $model = Mage::getModel('finder/finder');
 $collection = $model->getCollection()->addFieldToFilter('companyname', $stro);

 $this->getResponse()->setBody($block->toHtml());
  }
 $this->loadLayout();
  $this->renderLayout();

在前端布局fiel finder.xml中我调用了以下代码;

 <finder_index_view>
 <reference name="content">
<block type="finder/info"  name="finder" template="finder/info.phtml" />
 </reference>
 </finder_index_view>

如何在info.phtml文件中显示该控制器功能的输出。?

1 个答案:

答案 0 :(得分:0)

步骤1:Controller(IndexController.php)文件在索引控制器中,只需加载布局并渲染它。

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

步骤2:布局(custom.xml)文件将下面给出的代码放在模块的布局文件中。

<?xml version="1.0"?>
<layout version="0.1.0">
   <example_index_index>
       <reference name="content">
           <block type="example/collection" name="collection" template="example/collection.phtml" />
       </reference>
   </example_index_index>
</layout>

这里是块的代码,您可以在其中定义集合

 <?php
    class Abc_Example_Block_Collection extends Mage_Core_Block_Template
    {
        public function __construct()
        {
            parent::__construct();
            $stro  = $this->getRequest()->getParams('key');
            if($stro != null){
            $model = Mage::getModel('finder/finder');
            $collection = $model->getCollection()->addFieldToFilter('companyname', $stro);
            $this->setCollection($collection);
        }
   }

现在您可以在info.phtml

中访问此集合
<?php $collection = $this->getCollection(); ?>

希望这会对你有所帮助