2016-01-31 5 views
0

У меня есть такое определение сущности:Как справиться с массивом vars в 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: Notice: Array to string conversion

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

enter image description here

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

ответ

1

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

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

И запустить

php app/console doctrine:schema:update --force 

 Смежные вопросы

  • Нет связанных вопросов^_^