使用cakephp,如何在不使用每个循环的情况下显示一系列数据?

时间:2010-03-02 05:00:16

标签: loops cakephp view

我正在建立的应用程序是一个网球抽奖,其中有一个由圆形组织的比赛列表。我还给了比赛一个位置编号作为一种方式来订购它们并管理位于平局顶部的比赛。在一个32人的平局中,第一轮有16场比赛,比赛位置从1 - 16开始。

使用html绘制绘图并且不仅仅是一系列表行,它有一些复杂性。因此,为了在视图中显示匹配的玩家/分数,我需要将数据放置在使用一系列行的典型显示中不按顺序排列的位置。

如何在不使用foreach循环的情况下显示16个数据匹配?控制器中的每个变量最好是单个记录吗?

我原本以为在控制器中我可以有16个变量,但我更喜欢学习更好的编程方法,因为我学习了php和cakephp。

非常感谢。

3 个答案:

答案 0 :(得分:1)

只显示数组元素。

<?php echo $matches['Match'][0]['Player1']?>
<?php echo $matches['Match'][12]['Score']?>

如果你想仔细研究数据数组,找出哪些位在哪里,就可以使用pr()。

<?php pr($matches)?>

你可以回显一个数组的特定部分,它们并不排他性地绑定到foreach循环。这是我要采取的方法。虽然您需要注意,显然当您的数据在轮次之间发生变化时,您需要为每轮更新或创建新视图。

答案 1 :(得分:1)

不要放弃foreach。

我的每一行数据都“相当复杂”,如果将它移动到一个元素,它可能是最好的。

如果您需要在典型表格之外显示数据,可能最好使用真棒Set class提取数据,然后进行计算等等。

虽然正如sibidiba已经提到的那样,如果你在你的模型中做了所有这些,那将是最好的,所以你的观点保持清洁和清晰。您希望在标准表外显示的所有数据应该已准备好显示,在模型中准备好并由控制器传递给您的视图。如前所述,Set类是一个功能强大的工具,看看你是否可以使用它。

答案 2 :(得分:0)

如果您真的无法遍历视图中的数据(也可以考虑嵌套的foreach循环),那么您将错误的数据传递给视图!

重构控制器以可迭代的形式传递数据。 Containables在CakePHP中非常棒。