Termit132
(Peavey5150kh)
January 24, 2013, 5:40pm
1
Привет Всем !
Мне необходимо встроить функцию транслита в модель (CActiveRecord) которая будет изменять значение свойства модели, или другим словом - переопределять
Код должен выглядеть приблизительно так:
//model
...
public $name;
...
getName()
{
return HelpClass::translit($this->name);
}
Но такой вариант не работает.
Спасибо за помощь !
Termit132
(Peavey5150kh)
January 24, 2013, 6:33pm
3
не работает тот код что я написал, только свойство описано не внутри класса, а через PHPDOC т.е. @param name что-то в этом духе - я генерировал модели через Gii.
tuschkan
(O Turansky)
January 24, 2013, 6:47pm
4
Вам нужно сделать транслит после того, как записи будут найдены?
В components создайте свой helper на подобии
class Helper
{
public static function funcName()
{
return ...
}
В модели используйте метод afterFind.
protected function afterFind()
{
$this->name = Helper::funcName($this->name);
return parent::afterFind();
}
Termit132
(Peavey5150kh)
January 25, 2013, 7:56pm
5
tuschkan:
Вам нужно сделать транслит после того, как записи будут найдены?
В components создайте свой helper на подобии
class Helper
{
public static function funcName()
{
return ...
}
В модели используйте метод afterFind.
protected function afterFind()
{
$this->name = Helper::funcName($this->name);
return parent::afterFind();
}
Спасибо ! Это сработало, я раньше писал этот вариант но неправильный образец использовал т.к. parent раньше вызывался.