我有两个表格:Campaigns,Campaign_statistics。我需要输出带有嵌套统计信息的广告系列列表。在视图中使用getter是否是好习惯?
首先,我刚在模型的方法,其创建像以下的数组:
array(
'id', // integer
'campaign_name',// string
'stats'// nested array of arrays with stats by periods
);
在视图中我有两个foreach循环(一个嵌套在另一个):
<? foreach ($this->campaigns as $campaign): ?>
<div class="campaign">
<?= $campaign['name'] ?>
<? foreach($campaign['stats'] as $monthStats): ?>
<div class="statistics">
<?= $monthStats['views'] ?>
</div>
<? endforeach ?>
</div>
<? endforeach ?>
模型的实现会导致代码混乱,所以我决定尝试使Campaign成为一个对象。在一个视图中,我使用getters:
<? foreach($this->campaigns as $campaign): ?>
<div class="campaign">
<?= $campaign->getName() ?>
<? foreach($campaign->getMonthStats() as $monthStats): ?>
<div class="statistics">
<?= $monthStats->getViews() ?>
</div>
<? endforeach ?>
</div>
<? endforeach ?>
我从来没有见过任何框架使用这样的getters。这种方法的优点/缺点是什么?
我们正在谈论的干将,而不是大的方法:)我同意给你什么比干将 – haltabush 2012-03-24 22:49:00
权更加复杂。好吧,我只是害怕冒号:D我想,如果你知道你在做什么,那么也可以干涉铀。 – 2012-03-24 22:53:49