我使用的是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

您只需要第三个吗? 然后编写查询以提高效率;)对于所有其他情况,由于您使用的是Zend\\Db\\ResultSet\\ResultSet ,它使用Iterator ,因此您有不同的选择。

第一个是仍然像这样遍历字段集

while ($albums->key() != 3) {
    $albums->next();
}
$album = $albums->current();

另一种方法是简单地将ResultSet转换为array

$myAlbums = $albums->toArray();
$album    = $myAlbums[3];

根据您的ResultSet大小和您真正需要的条目数,两种解决方案可能对您来说都更快。 猜猜你必须测试一个;)

  ask by Ramy1988 translate from so

未解决问题?本站智能推荐:

关注微信公众号