Массив PHP не заполнен данными, предоставленными в конструкторе класса сущностей symfony2

1

В моем классе php (класс сущности symfony2) у меня есть переменная класса:

protected $avaliabletags = array();

Чем в конструкторе я помещаю данные в этот массив:

/**
     * Constructor
     */
    public function __construct()
    {
        $this->avaliabletags['zatwierdzony']['name'] = "Zatwierdzony";
        $this->avaliabletags['zatwierdzony']['role'] = "ROLE_ACCEPTTAG";
        $this->avaliabletags['zatwierdzony']['label'] = "";
        $this->avaliabletags['finalized']['name'] = "Finalized";
        $this->avaliabletags['finalized']['role'] = "ROLE_ACCEPTDOC";
        $this->avaliabletags['finalized']['label'] = "";
    }

Однако приведенный выше код не заполняет переменную класса.

Использование print_r на $this->avaliabletags приводит к array()

Что я делаю не так?

  • 1
    Где вы звоните print_r ? Вы уверены, что между constructor и вызовом для print_r вы не очищаете массив?
  • 0
    Я искал файл класса и не нашел других ссылок на $ avaliabletags. Тем не менее я сомневаюсь, что __construct () выполняется так, как положил die (); не приводит к пустой странице.
Показать ещё 1 комментарий
Теги:
arrays

1 ответ

2
Лучший ответ

Похоже, что проблема связана с не вызываемым конструктором.

Согласно документации doctrine2 Doctrine2 никогда не вызывает метод __construct() сущностей. http://www.doctrine-project.org/docs/orm/2.0/en/reference/architecture.html?highlight=construct.

Поэтому я меняю код на:

/**
 * Baza dostepnych tagów
 */
protected $avaliabletags = array(
  "zatwierdzony" => array(
    "name" => "Zatwierdzony", 
    "role" => "ROLE_ACCEPTTAG"
  ), 
  "finalized" => array(
    "name" => "Finalized", 
    "role" => "ROLE_ACCEPTDOC"
));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню