输入特定的对象值

时间:2013-04-16 23:20:34

标签: zend-framework2

我正在使用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

有什么帮助吗? 谢谢你们每个人

1 个答案:

答案 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的大小以及您真正需要多少条目,解决方案可能会更快。猜猜你必须测试那个;)