0

我正在尝试解决如何处理返回的对象:

$data = $this->getDoctrine()->getRepository('MyBundle:EntityName')->findAll();

我知道我可以将它传递给 Twig 并以这种方式使用它,但我需要对其进行进一步的 PHP 代码。

我想这是处理对象的一般 PHP 问题。

使用 serialise($data) 会返回太多信息,我不知道如何处理它。

我想我需要知道这样的事情:

//to get record 1 / field 1
$data[1]['field1']

...但当然这不起作用。

4

1 回答 1

1

我认为您不需要对其进行序列化,我认为这会使使用变得更加困难。由于 Doctrine 知道您检索到的实体的类型/类,因此它将它们作为实例返回,您可以正常与它们交互。

基于您的问题的示例:

假设您想要记录 1 - 字段 1 的值,并且您搜索的这个实体的结构类似于使字段 1 成为 id:

Class Person {
    private $id;
    private $someValue;

    public function getId()
    {
        return $this->id;
    }
    public function setSomething($value)
    {
        $this->someValue = $value;
    }
}

您可以按照 Kris 的说明进行操作并使用 $data[0]->getId()
您可以访问您拥有 getter 和 setter 的任何字段(或公开的)

如果如您所说,您需要对这些检索到的对象进行一些修改,请记住 $data 只是一个数组对象/实体。你可以这样做:

foreach($data as $object)
{
    $object->setSomething($something);
}

我认为将它们用作对象肯定更好

于 2013-07-05T23:28:11.960 回答