如何在Zend Framework中将视图中的值传递给控制器​​?

时间:2011-01-30 17:55:42

标签: php model-view-controller zend-framework

我知道,如果我将其放在链接上,我就会点击该链接:

array('controller'=>'challenge','action'=>'evaluateChallenge','codTeam'=>$d["cod_challenge_team"]);

如果,在控制器上我做:

$values = $this->_request->getParams();
 $teamVo->setCodTeam($values['codTeam']);

我将获得所需的价值。

我想做同样的事情,但是没有用户进行交互。 我打算将值传递给evaluateChallenge,每次我在视图侧循环通过值。

这是最愚蠢的问题之一,但它确实可以解释这里的损失。

我可以帮忙吗?

或者至少告诉我我说错了什么。 :)

:::::::::::::::::::::::::::::::::: UPDATE ::::::::: :::::::::::::::::::::::::::::

我想显示与给定团队相关的数据库记录元素列表。 所以我可以:

  

团队A.      - cod_team      - 挑战A.      - 参与者ABC      - 积分XXX

     

团队B.      - cod_team      - 挑战A.      - 参与者ABC      - 积分XXX

等等......

在我的观点上对此进行的代码翻译是这样的:

foreach ($challenge as $d) { 
echo $d['challengeName'];
echo $d['participants'];
echo $d['points'];
}

一切都很好。

现在,我需要在此列表中添加其他信息,以便我可以使用:

  

团队A.      - cod_team      - 挑战A.      - 参与者ABC      - 积分XXX      - FILESATTACHED_NEW_INFORMATION

     

团队B.      - cod_team      - 挑战A.      - 参与者ABC      - 积分XXX      - FILESATTACHED_NEW_INFORMATION

依旧......

这个新信息应该在视图帮助器上解决。好。 我会弄清楚如何做到这一点。

然而,我需要在视图上调用该帮助程序 - 对吗?在foreach所在的同一视图上。但是,我需要将FilesAttached与foreach相关联($ challenge为$ d)以某种方式对吗? - 或者还有其他方法吗?

如果没有别的办法: 我们如何将来自帮助者的数据与通过foreach在视图中存在的数据联系起来?

再次感谢, MEM

1 个答案:

答案 0 :(得分:1)

  

我想做同样的事情,但是没有用户进行交互。我打算将值传递给evaluateChallenge,每次我在视图侧循环通过值。

您可以使用Action ViewHelper执行此操作,但这会为每次调用创建一个新的调度循环。这会严重降低您的应用程序速度,why you should avoid itThe helper might also be removed in ZF2.

更好的方法是使用可以传递所需参数的ViewHelper。然后,该视图助手将使用传递的参数查询适当的模型,并返回所需的值。只要这不会改变模型状态,it is okay to fetch data from the View directly

RE更新

没有任何魔力:

foreach ($challenge as $d) { 
    echo $d['challengeName'],
         $d['participants'],
         $d['points'];

    $results = $this->evaluateChallenge($d['cod_challenge_team']);
    // now do something with the results
}