Всем привет.
У меня в таблице имеется уникальный составной ключ, состоящий из полей ('position', 'controller', 'action')
В модели я прописал:
public function validation() {
$validator = new Phalcon\Validation();
$validator->add(
[
"position",
"controller",
"action",
],
new Phalcon\Validation\Validator\Uniqueness()
);
return $this->validate($validator);
}
Валидация по составному ключу не работает. Выдает:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1-admin_access-' for key 'position_controller_action'
Судя по всему по каждому полю отдельно проверяет а не по всем вместе. Как сделать валидацию по составному ключу в модели?
Решение из этой темы НЕ ПОДХОДИТ: https://forum.phalcon.io/discussion/4205/phalcon-model-validate-uniqueness-by-two-fields
public function validation()
{
$this->validate(new Uniqueness(array(
'field' => array('email', 'name')
)));
}
Не подходит, так как метод Validate должен принимать \Phalcon\ValidationInterface который в свою очередь принимает правила валидации через метод:
public function add($field, \Phalcon\Validation\ValidatorInterface $validator) {}
Как сделать валидацию по составному ключу в модели?