Как сделать чтобы правило unique в rules не реагировало на старое занчение

Делаю проверку по номеру - номер должен быть уникальный. Проверка проходит. Но при редактировании - если номер был не изменен - то старый номер находится и на него ругается.

        [
            ['number'],
            'unique',
            'targetClass' => PhoneBase::class,
            'filter' => function($query) {
                $query = $query->andWhere(['!=', 'id', $this->id]);
                return $query;
            },
            'message' => 'Номер уже существует'
        ],

То есть - сейчас это правило срабатывает. Если добавляется новая запись и номер уже есть в базе - то валидация не проходит. Если редактируется - тоже срабатывает. Но проблема в том что если были отредактированы другие поля в записи, а number не изменен - то это правило его же и находит (в этой же самой записи) и валидация тоже не проходит. Как сделать чтобы если number в той же записи которая редактируется - он на нее не срабатывал. Пробовал параметр filter - но не получилось


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