我正在使用zendframwork 2,我在官方文档中实现了专辑例子 http://framework.zend.com/manual/2.1/en/user-guide/overview.html#the-tutorial-application(所以在我的模型文件夹中我有Album.php和AlbumTable.php)并且一切正常,我只想做一个小修改:
我想要访问相册中的第三个元素。在index.phtml视图中(最初我有这段代码)
<?php foreach ($albums as $album) : ?>
<?php echo $this->escapeHtml($album->title);?>
<?php echo $this->escapeHtml($album->artist);?>
<?php endforeach; ?>
我尝试过像
这样的事情<?php echo $this->escapeHtml($album->title[3]);?>
<?php echo $this->escapeHtml($album[3]->title);?>
but i always get this error
( ! ) Fatal error: Cannot use object of type Auth\Model\Album as array in C:\wamp\www\zf2-album\module\Auth\view\auth\auth\index.phtml on line 14
有什么帮助吗? 谢谢你们每个人
答案 0 :(得分:0)
你只需要第三个吗?然后编写您的查询以提高效率;)对于所有其他情况,由于您使用Zend\Db\ResultSet\ResultSet
,使用Iterator
您有不同的选项。
第一个是仍然遍历字段集,如
while ($albums->key() != 3) {
$albums->next();
}
$album = $albums->current();
另一种方法是简单地将ResultSet
转换为array
$myAlbums = $albums->toArray();
$album = $myAlbums[3];
根据您ResultSet
的大小以及您真正需要多少条目,解决方案可能会更快。猜猜你必须测试那个;)