Doctrine2命名空间对象

时间:2012-09-05 03:11:40

标签: php zend-framework doctrine-orm

我刚刚开始在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
}

我猜这是一个简单的事情,我很想知道/没有意识到,并且会很感激任何见解。

1 个答案:

答案 0 :(得分:1)

从您自己的var_dump()id属性是私有的,因此无法像在foreach循环中那样直接访问它。

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

另见http://php.net/manual/en/language.oop5.visibility.php