在Symfony中将实体转换为数组

I'm trying to get a multi-dimensional array from an Entity.

Symfony Serializer can already convert to XML, JSON, YAML etc. but not to an array.

I need to convert because I want have a clean var_dump. I now have entity with few connections and is totally unreadable.

How can I achieve this?

Apparently, it is possible to cast objects to arrays like following:

<?php

class Foo
{
    public $bar = 'barValue';
}

$foo = new Foo();

$arrayFoo = (array) $foo;

var_dump($arrayFoo);

This will produce something like:

array(1) {
    ["bar"]=> string(8) "barValue"
}

If you have got private and protected attributes see this link : https://ocramius.github.io/blog/fast-php-object-to-array-conversion/

Get entity in array format from repository query

In your EntityRepository you can select your entity and specify you want an array with getArrayResult() method.
For more informations see Doctrine query result formats documentation.

public function findByIdThenReturnArray($id){
    $query = $this->getEntityManager()
        ->createQuery("SELECT e FROM YourOwnBundle:Entity e WHERE e.id = :id")
        ->setParameter('id', $id);
    return $query->getArrayResult();
}

If all that doesn't fit you should go see the PHP documentation about ArrayAccess interface.
It retrieves the attributes this way : echo $entity['Attribute'];