2013-04-16 48 views
0

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

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

第一个将仍然通过字段集迭代像

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

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

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

根据您的ResultSet有多大和您真正需要多少条记录,无论是对您而言,解决方案可能会更快。猜你必须测试那个;)

+0

感谢您的帮助,我用第一个方法和应用程序仍然加载没有结果(似乎zf2被阻止),我选择更多的第二个解决方案,但我得到这个错误这个结果是仅前向结果集,不支持向前移动后调用rewind() – Ramy1988

+0

是的,你只能前进。如果有新问题,请提供实际的代码;) – Sam

相关问题