0

无论如何都可以访问我的实体的数据而不使用特定的访问器来访问我的列值。有没有通用的访问器?参见示例:

$em = $this->getDoctrine()->getManager();
$data = $em->getRepository('EgBundle:Table')->findAll()

foreach($data as $row) {
  var_dump($row->get('col1')); // I would like to do this
  var_dump($row->getCol1()); // instead of this
  $col = 'getCol1'; var_dump($row->$col()); // this is my temporary solution
}
4

3 回答 3

2

您也许可以使用 symfony2 PropertyAccessor 组件。

此处的文档:http: //symfony.com/doc/current/components/property_access/introduction.html

例子:

$accessor = PropertyAccess::createPropertyAccessor();
$accessor->getValue($row, 'col1');
于 2013-11-15T15:45:59.447 回答
0

不,不是没有添加对用户空间代码的支持。您可以添加如下内容:

public function get($property) {
    return $this->$property;
}
于 2013-11-15T15:56:39.350 回答
0

如果你使用 DQL,你可以得到一个数组

$em = $this->getDoctrine()->getManager();
$query = $em->createQuery('SELECT table FROM EgBundle\Entity\Table table');
$data = $query->getQuery()->getArrayResult();

foreach ($data as $row) {
    var_dump($data['col1']);
}
于 2013-11-15T09:47:00.200 回答