Предположим, у меня есть поле для IP-адреса. Имеет 2 валидатора
- Ip
- Db_NoRecordsExists
$ip = new Zend_Form_Element_Text('ip');
$ip->setLabel('IP')
->setRequired(true)
->addValidator('Ip')
->addValidator('Db_NoRecordExists', false, array('table' => 'blacklist_ips', 'field' => 'ip'));
В БД ip хранится как целое число, поэтому у меня проблема с проверкой уникальности с использованием Db_NoRecordsExists.
Можно ли передать ip как преобразованный в целое число, но только для одного из валидаторов (потому что в случае конвертации значения поля перед валидацией, Ip validator выдаст ошибку), что-то вроде этого (добавлен новый параметр "value"):
$ip->setLabel('IP')
->setRequired(true)
->addValidator('Ip')
->addValidator('Db_NoRecordExists', false, array('table' => 'blacklist_ips', 'field' => 'ip', 'value' => Custom_Convert_Ip::ip2long([value_of_ip])));
Заранее спасибо.