Соорудил конструкцию, просто пример таблицы с валютами ( надо по ISO код валюты хранить, он же short_name):
1. БД
CREATE TRIGGER currency_ucase_insert BEFORE INSERT ON currency FOR EACH ROW
SET NEW.short_name = UPPER(NEW.short_name);
CREATE TRIGGER currency_ucase_update BEFORE UPDATE ON currency FOR EACH ROW
SET NEW.short_name = UPPER(NEW.short_name);
2. Модель yii.
У меня:
class Currency extends \yii\db\ActiveRecord
добавил метод:
/*
* Капсим сокращение валют
*/
public function afterFind()
{
parent::afterFind();
$this->short_name = strtoupper($this->short_name);
}
3. Поле ввода
echo $form->field(
$model,
'short_name'
)->textInput([
'maxlength' => true,
'style' => 'text-transform: uppercase',
]);
Вроде всё класс