2010-03-02 22 views
0

我正在构建的应用程序是一个网球抽签,其中有按比赛组织的比赛列表。我也给比赛一个位置号码作为排序和管理比赛的顶部的比赛的方式。在32位选手抽签中,第一轮有16场比赛,比赛排名从1到16。使用cakephp,我如何在不使用每个循环的情况下显示一系列数据?

抽奖是用html制定的,不仅仅是一系列的表格行,它有一些复杂性它。所以为了在视图中显示匹配的玩家/分数,我需要使用一系列行将数据放置在与典型显示无序的位置。

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

我以为在控制器中我可以有16个变量,但是我宁愿学习更好的干式编程方法,因为我学习的是php和cakephp。

非常感谢。

回答

1

只显示数组元素。

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

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

<?php pr($matches)?> 

你可以只声明一个数组的特定部分,它们不是独占地绑定到foreach循环。这是我会采取的方法。虽然你需要知道,显然当你的数据在轮次之间变化时,你需要更新或为每一轮创建一个新的视图。

0

如果你真的无法迭代你的视图中的数据(也考虑嵌套的foreach循环),你正在传递错误的数据到视图!

重构您的控制器以可迭代形式传递数据。在CakePHP中,Containables真的很棒。

1

不要放弃foreach而已。

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

如果您需要在典型表格外显示数据,也许最好是使用真棒Set class来提取数据,然后再进行计算和其他操作。

尽管如西比迪巴已经提到的那样,如果你在模型中做了所有这些,那将是最好的,所以你的观点保持清晰和清晰。所有要显示在标准表外部的数据应该已准备就绪,可以在您的模型中准备好并准备好显示,并由您的控制器传递给您的视图。如前所述,Set类是一个强大的工具,请参阅是否可以使用它。

+0

如果这是复杂的,你可能也想考虑把它做成帮手,而不仅仅是一个元素。 我同意Set类的东西,以及Containables的行为。在尝试使用它之前,将数据鞭打一下! – 2010-03-02 17:35:21

相关问题