Zend Helper设计用法示例

时间:2010-12-06 22:40:52

标签: php zend-framework helper

我有一个视图循环数据库表返回狗信息。

这是控制器:

public function listAction()
{
  $dogDao = new DogDao();
  $this->view->infoDog = $dogDao->retrieveDogInfo();
}

在视图中我可以检索这样的狗信息:

<?php for($i = 0; $i < 30; $i++){ ?>
if(isset($this->infoDog[$i])){
   $dog = $this->infoDog[$i]; 

这很好用。

我现在需要添加额外的狗特定信息,但狗信息不是我可以从Dog General Info表获得的信息,它需要一些连接,并且最后检索一个数字。

public function retrieveVerySpecificInformation($dogId) {

return $numberSpecificForThatDog

};

我(相信)我需要一个帮助来完成这些计算,我的问题是:

我应该在 for 所在的视图上调用此帮助器吗? 但是,如何以给定狗A的方式连接这些信息,两者:  一般的狗信息和该特定狗的特定数量A?

我的意思是,我们怎样才能在这里正确整合助手呢?

我可以帮忙吗?

提前致谢, MEM

1 个答案:

答案 0 :(得分:1)

你可以这样调用视图助手

<?php echo $this->displayDog('A', 'black'); ?>

你的助手应该像

class Zend_View_Helper_Dog
{
    public function displayDog($type, $color)
    {
         $dog = new Model_DbTable_Dog();
         return $dog->getDog($type, $color);
    }
}

确定从几个数据库操作的循环中调用视图助手,但是当您为每只狗进行自定义数据库查询时( 30个查询不推荐)< / p>

<强>建议

您应该在控制器中获取所需的所有信息并将其传递给您的视图,以后可以使用任何视图助手进行操作。

public function listAction()
{
    this->view->infoAllDog = $dogDao->retrieveAllDogs(); 
    // including joined info + all dogs you may need in your view