При выполнении проверки правило не различает регистр. То есть в базе есть пользователь demo, ещё одна запись demo не добавляется и вызывает ошибку а вот Demo или deMo добавляется свободно.
В CUniqueValidator.php атрибут $caseSensitive по умолчанию стоит true…
В вашем случае валидатор работает правильно. По умолчанию свойство $caseSensitive = true, поэтому при сравнении 'demo' с 'DeMo' получается что вторая строка уникальная и она свободно добавляется в базу.
В вашем случае как раз нужно поставить $caseSensitive = false.
есть ли встроенная функция проверки на уникальность несколько параметров вместе?
пример: поля x и y. валидация не должна проходить если в таблице есть запись где и x и y совпадают, соотвественно если одно из значений не совпадает - валидация проходит.
писать собственную функцию - можно, но не красиво если можно организовать средствами yii