Как сделать чтобы правило unique в rules не реагировало на старое занчение
Делаю проверку по номеру - номер должен быть уникальный. Проверка проходит. Но при редактировании - если номер был не изменен - то старый номер находится и на него ругается.
[
['number'],
'unique',
'targetClass' => PhoneBase::class,
'filter' => function($query) {
$query = $query->andWhere(['!=', 'id', $this->id]);
return $query;
},
'message' => 'Номер уже существует'
],
То есть - сейчас это правило срабатывает. Если добавляется новая запись и номер уже есть в базе - то валидация не проходит. Если редактируется - тоже срабатывает. Но проблема в том что если были отредактированы другие поля в записи, а number не изменен - то это правило его же и находит (в этой же самой записи) и валидация тоже не проходит. Как сделать чтобы если number в той же записи которая редактируется - он на нее не срабатывал. Пробовал параметр filter - но не получилось