Как уже упоминалось в некоторых комментариях, база данных, как правило, обрезает текст без жалоб, в результате чего сохранение происходит в обычном режиме.
Если вы хотите, чтобы это происходило независимо от базы данных, вы можете написать это в функции beforeMarshal()
модели:
public function beforeMarshal(Event $event, ArrayObject $data, ArrayObject $options)
{
if (isset($data['username']) && strlen($data['username']) > 128) {
$data['username'] = substr($data['username'], 0, 128); // Truncate
}
}