1

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
}

これは私が見逃している/気づいていない単純なものであり、洞察をいただければ幸いです。

4

1 に答える 1

1

独自のvar_dump()から、プロパティはプライベートであるため、ループ内idで行うように直接アクセスすることはできません。foreach

たとえば、プロパティgetId()の値を返すアクセサ メソッドを作成する必要がありidます。

http://php.net/manual/en/language.oop5.visibility.phpも参照してください。

于 2012-09-05T07:08:53.573 に答える