Добавить динамическую переменную в форму / модель в Yii

Пожалуйста, помогите, как я могу добавить динамическую переменную в Yii CFormModel?

private function magic($name, $value) {
    $this->$name = $value;
}

или же

$form = new FormGenerate($attributes);
$form->temp = '1';

Покажите мне исключение "Неопределенное свойство" =(

2 ответа

Я создаю переменную $_params;

А также

public function __get($name)
    {
        if (isset($this->_params[$name])) {
            return $this->_params[$name];
        }

        return parent::__get($name);
    }


    public function __set($name, $value)
    {
        if (isset($this->_params[$name])) {
            $this->_params[$name] = $value;
        } else {
            parent::__set($name, $value);
        }
    }

Это работа =)

В вашем классе попробуйте что-то вроде этого

class Test
{
    public function __construct($x)
    {
        $this->{$x} = "dynamic";
    }
}

$a = new Test("bar");
print $a->bar;

попробуйте изменить свой

$this->$name

в

$this->{$name}

чтобы увидеть, что происходит.

Другие вопросы по тегам