Мне нужно создать новый атрибут в модели, и происходит нечто странное:
этот код работает нормально:
class Person extends CActiveRecord {
public $test = "xxx";
public function getRandomToken() {
$temp = $this->test;
return $temp;
}
этот код не:
class Person extends CActiveRecord {
public $test = md5(uniqid(rand(), true));
public function getRandomToken() {
$temp = $this->test;
return $temp;
}
Зачем?
Я получаю пустую страницу со вторым кодом, без ошибок.
Мне нужно будет использовать случайный токен из create view-page, и я делаю это следующим образом:
echo $model->getRandomToken();
Спасибо за поддержку!
Если вы не хотите перезаписывать конструктор, вы можете использовать это:
class Person extends CActiveRecord {
public $test = null;
public function getRandomToken() {
if ($this->test == null){
$this->test = md5(uniqid(rand(), true));
}
$temp = $this->test;
return $temp;
}
Вы не можете назначить результат функции как значение. Это должна быть константа. Назначьте значение функции в конструкторе
public $test = '';
function __construct() {
$this->test = md5(uniqid(rand(), true));
}