Как работать с переменными массива в Twig на EasyAdminBundle?

У меня есть это определение сущности:

class Operator
{
    ...

    /**
     * @var array
     * @ORM\Column(type="text", nullable=true)
     */
    private $prefix;

    /**
     * @param $prefix
     * @return $this
     */
    public function addPrefix($prefix)
    {
        if (!in_array($prefix, $this->prefix, true)) {
            $this->prefix[] = $prefix;
        }
        return $this;
    }

    /**
     * @param array $prefixes
     * @return $this
     */
    public function setPrefix(array $prefixes)
    {
        $this->prefix = array();

        foreach($prefixes as $prefix) {
            $this->addPrefix($prefix);
        }

        return $this;
    }

    /**
     * @return array The prefixes
     */
    public function getPrefix()
    {
        $prefix = is_array($this->prefix) ? $this->prefix : ['04XX'];
        return array_unique($prefix);
    }

    ...    
}

Я использую EasyAdminBundle для управления этим объектом в серверной части, поэтому вот его конфигурация:

easy_admin:
    entities:
        Operator:
            class: PlatformAdminBundle\Entity\Operator
            ...
            form:
                fields:
                    ... 
                    - { property: 'prefix', label: 'prefix' }

Каждый раз, когда я пытаюсь создать новый Operator, я сталкиваюсь с этой ошибкой:

ContextErrorException: Примечание: преобразование массива в строку

Я не могу найти, в чем проблема, так как я использую то же самое для сущности User, которая наследуется от BaseUser (от FOSUser), и это работает. Вот как это выглядит для объекта User и должно быть таким же для Operator:

введите здесь описание изображения

Что мне не хватает? Может ли кто-нибудь дать мне несколько советов? Я застрял!


person ReynierPM    schedule 31.01.2016    source источник


Ответы (1)


Столбец префикса Orm должен быть типа массива.

/**
 * @var array
 * @ORM\Column(type="array", nullable=true)
 */
private $prefix;

И беги

php app/console doctrine:schema:update --force
person Andrzej Piszczek    schedule 31.01.2016