Yii2 генерация slug. Таблица транслитерации

есть behaviors, который генерит slug

public function behaviors()
{
  return [
    [
        'class' => SluggableBehavior::class,
        'attribute' => 'title',
        'slugAttribute' => 'slug',
        'immutable' => false,
        'ensureUnique' => true,
    ],
  ];
}

Подскажите, подалуйста, как правильно переопределить таблицу тарнслитерации ? Спасибо.


Ответы (1 шт):

Автор решения: Moonvvell

У SluggableBehavior есть еще значение value которое можно переопределить чтобы оно использовало вашу функцию создания slug.

public function behaviors()
{
  return [
    [
        'class' => SluggableBehavior::class,
        'attribute' => 'title',
        'slugAttribute' => 'slug',
        'immutable' => false,
        'ensureUnique' => true,
        'value' => function() {
          return возвращаете значение из вашей функции а не стандартной Inflector::slug 
        }
    ],
  ];
}

Другой способ - можете наcледовать класс SluggableBehavior и надписать функцию generateSlug. Если не ошибаюсь, там нету никакой таблицы и переопределение идет с помощью регулярки. Но это надо глянуть Inflector::slug.

→ Ссылка