Purtoppo non è questo il problema, la funzione va nella stessa classe, addirittura si può definire direttamente nella regola di validazione in questo modo
Codice PHP:
['username', function ($attribute$params) {
    
$this->addError($attribute"Messaggio d'errore");
}], 
Ma neanche così fa il suo dovere.