我刚刚开始在Zend Framework中使用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
}
我猜这是一个简单的事情,我很想知道/没有意识到,并且会很感激任何见解。
答案 0 :(得分:1)
从您自己的var_dump()
,id
属性是私有的,因此无法像在foreach
循环中那样直接访问它。
您必须创建一个访问者方法,例如getId()
,然后返回id
属性的值。