2012-09-05 82 views
1

我刚刚开始在Zend Framework中使用Doctrine2(也开始使用名称空间)并从数据库中获取数据。我从数据库中获取行并将它们分配给视图没有问题,但是当循环遍历行并尝试回显一个值时,我得到一个空字符串。Doctrine2名称空间对象

<?php 
    foreach ($this->rows as $row) 
    { 
    echo 'id = ' . $row->id . ' <br>'; 
    } 
?> 

结果是"id = "

一个var_dump()$row结果:

object(My\Entity\Events)#227 (11) { 
    ["id":"My\Entity\Events":private]=> 
    int(1) 
    ["_userId":"My\Entity\Events":private]=> 
    int(1) 
    ["_startDateTime":"My\Entity\Events":private]=> 
    object(DateTime)#224 (3) { 
    ["date"]=> 
    string(19) "2012-09-08 19:00:00" 
    ["timezone_type"]=> 
    int(3) 
    ["timezone"]=> 
    string(16) "America/New_York" 
    } 
    ["_endDateTime":"My\Entity\Events":private]=> 
    object(DateTime)#220 (3) { 
    ["date"]=> 
    string(19) "2012-09-08 20:00:00" 
    ["timezone_type"]=> 
    int(3) 
    ["timezone"]=> 
    string(16) "America/New_York" 
    } 
    ["_eventTitle":"My\Entity\Events":private]=> 
    string(11) "Dummy Event" 
    ["_data":"My\Entity\AbstractEntity":private]=> 
    NULL 
} 

我猜这是一些简单的我失踪/不知情,并希望任何见解。

回答

1

从自己var_dump(),该id财产是私有的,因此它可以为您在foreach循环不直接访问。

您必须创建一个访问方法,例如getId(),然后它将返回值id属性。

另请参阅http://php.net/manual/en/language.oop5.visibility.php

+0

您是100%正确的。我打算/应该将它们标记为受保护的。非常感谢你。 –

+0

很高兴有帮助=)你可能想要upvote /接受答案然后=) –