Обычно, генерация такого поля нужня для организации URL-адресов (ЧПУ) или для уникальных ключей.
Для того, что бы организовать генерацию поля "code", удобно использовать стандартный функционал Yii2 SluggableBehavior.

Шаги реализации



1) Добавляем поведение SluggableBehavior
Открываем файл модели (например, app\models\YourModel.php) и подключаем пространство имен в шапке:
use yii\behaviors\SluggableBehavior;


2) Реализация поведения в модели
public function behaviors()

{
return [
'slug' => [
'class' => SluggableBehavior::className(),
'attribute' => 'title', // Поле исходного значения (откуда получать данные)
'slugAttribute' => 'code', // Поле куда сохраняется транслитерация
'ensureUnique' => true, // Поле с кодом должно быть уникальным
],
];
}

В контроллер или view добавлять ничего не нужно. При каждом обновлении или добавлении элементов модели, будет происходить транслитерация.

Если нужно настроить собственный алгоритм транслитерации, можно реализовать свой обработчик внутри метода beforeSave().