/** * @return CArrayList */ public function getFields() { if (is_null(self::$_fields)) { self::$_fields = new CArrayList(); } if (!self::$_fields->hasElement($this->name)) { $fields = new CArrayList(); $query = new CQuery(); $query->query("DESCRIBE " . $this->name); foreach ($query->execute()->getItems() as $field) { $fields->add($field["Field"], new CDbTableField($field)); } self::$_fields->add($this->name, $fields); } return self::$_fields->getItem($this->name); }