В моем классе 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()
Что я делаю не так?
Похоже, что проблема связана с не вызываемым конструктором.
Согласно документации 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"
));
print_r
? Вы уверены, что междуconstructor
и вызовом дляprint_r
вы не очищаете массив?