Т.е. у меня есть модель, у которой на событие AfterFind висит определенное действие. Так вот, это действие мне нужно вызывать только при определенном сценарии. Как быть?
В контроллере:
Код: Выделить всё
$district = ipGeoDistrict::model()->findAll();
Код: Выделить всё
protected function afterFind() {
parent::afterFind();
if ($this->scenario == 'short') {
$district = mb_strtolower($this->caption);
switch ($district) {
case strtolower('Центральный федеральный округ'):
$this->caption = 'ЦФО';
break;
case strtolower('Северо-Западный федеральный округ'):
$this->caption = 'СЗФО';
break;
case strtolower('Южный федеральный округ'):
$this->caption = 'ЮФО';
break;
case strtolower('Сибирский федеральный округ'):
$this->caption = 'СФО';
break;
case strtolower('Приволжский федеральный округ'):
$this->caption = 'ПФО';
break;
case strtolower('Дальневосточный федеральный округ'):
$this->caption = 'ДФО';
break;
case strtolower('Северо-Кавказский федеральный округ'):
$this->caption = 'СКФО';
break;
case strtolower('Уральский федеральный округ'):
$this->caption = 'УФО';
break;
}
}
}