Валидация анонимной функцией

Проверяю данные своей функцией, addError не добавляет ошибку


[['INV','PROD','INV_REF'], function($attr){

	if(!is_array($this->$attr)){

	    $this->addError($attr,'Неверно заполненные данные');

	}       			

}],

все 3 поля это мульти селект. что я не так сделал? даже если просто внутри пропишу addError все равно в getErrors пусто.

и еще вопрос, как сделать что бы если поля пустые, то удалить атрибут? не буду же я делать проверку аля "попов" if !empty и т.д., есть у yii2 свой вариант? я хочу в ar модели в метод find передать $this->getAttribute(), и что бы там были только не пустые поля