1
我从这个查询Zend_Paginator_Adapter_DbTableSelect对象:循环访问Zend_Paginator的对象显示
public function fetchPagedTracks() {
$select = $this->select(Zend_Db_Table::SELECT_WITH_FROM_PART)
->setIntegrityCheck(FALSE);
$select->join(array('ar' => 'artist'), 'ar.id = track.artist_id',
array('artist_name' => 'name'));
$select->join(array('al' => 'album'), 'al.id = track.album_id',
array('album_name' => 'name', 'artist_id', 'year'));
$select->order('artist_name', 'ASC');
$select->order('album_name');
$select->order('track', 'ASC');
//create a new instance of the paginator adapter and return it
$adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
return $adapter;
}
预期和工程数据的回报,我的问题是我viewscript。我想以特定的方式迭代结果集。基本上我想让艺术家在每张专辑的子表格的顶部,并列出每首专辑的顺序。我已经完成了这个......但不正确,我不得不做我觉得是黑客,我希望能够帮助我解决它。
这里是视图:
<?php
echo $this->paginationControl(
$this->paginator, 'Sliding', '_paginatorControl.phtml'
)
?>
<table>
<?php
foreach ($this->paginator as $track):;
// Zend_Debug::dump($track, '');
$artist = $track->artist_name;
$album = $track->album_name;
?>
<?php if ($end_artist != $artist): ?>
<tr>
<th colspan="4"><?php echo $track->artist_name ?></th>
</tr>
<?php endif ?>
<?php if ($end_album != $album): ?>
<tr>
<th colspan="4"><?php echo $track->album_name . ' ' . $track->year ?></th>
</tr>
<tr>
<th>Track #</th>
<th>Title</th>
<th>Bitrate</th>
<th>Play Time</th>
</tr>
<?php endif; ?>
<tr>
<td><?php echo $track->track ?></td>
<td><?php echo $track->title ?></td>
<td><?php echo $track->bit_rate . 'Kbps' ?></td>
<td><?php echo $this->playtime($track->play_time) ?></td>
</tr>
<?php
$end_artist = $track->artist_name;
$end_album = $track->album_name
?>
<?php endforeach ?>
</table>
<?php
echo $this->paginationControl(
$this->paginator, 'Sliding', '_paginatorControl.phtml'
); ?>
最大的问题是,这种代码会导致两个公告:
注意:未定义的变量:end_artist在 E:\ WWW \ home.local \程序\模块\音乐\意见\脚本\首页\ display.phtml 上线13 ...和第18行
有问题的变量是$end_artist
和$end_album
对于我来说,我无法弄清楚如何以不同的方式做到这一点。建议?
P.S.该分页程序对象的转储可以在Pastbin
之前,我确实说:“哦,大坝!” ......讲座关于缺少明显的感谢。 – RockyFord 2012-03-17 23:14:26