У меня есть страница с двумя полями «Время начала» и «Время окончания».
$start_time = new Zend_Form_Element_Select("start_time");
$start_time->setRegisterInArrayValidator(false);
$start_time->addValidator(
new Zend_Validate_Db_NoRecordExists(
array(
'table'=>'main_times',
'field'=>'start_time',
'exclude'=> 'id != "' . Zend_Controller_Front::getInstance()->getRequest()->getParam('id') . '" and isactive = 1',
)
)
);
$start_time->getValidator('Db_NoRecordExists')->setMessage('Start Time already exists.');
$end_time = new Zend_Form_Element_Select("end_time");
$end_time->addMultiOptions(array(''=>'Select End Time'));
$end_time->setRegisterInArrayValidator(false);
$end_time->addValidator(
new Zend_Validate_Db_NoRecordExists(
array(
'table'=>'main_times',
'field'=>'end_time',
'exclude'=>'id != "' . Zend_Controller_Front::getInstance()->getRequest()->getParam('id') . '" and isactive = 1',
)
)
);
$end_time->getValidator('Db_NoRecordExists')->setMessage('End Time already exists.');
Здесь, как вы видите, я проверяю поля «Время начала» и «Время окончания» отдельно .
Теперь я хочу показать сообщение об ошибке типа «Временной интервал уже существует», если я попытаюсь создать запись с тем же временем начала и окончания.
Например:
Первый раз: я создал запись с «Время начала» как «14:00» и «Время окончания» как «15:00». Теперь временной интервал - 14:00 - 15:00
Второе время: я создал запись с «Время начала» как «14:00» и «Время окончания» как «17:00». Теперь временной интервал - 14:00 - 17:00
Третье время: я создал запись с «Время начала» как «14:00» и «Время окончания» как «15:00». Теперь временной интервал 14:00 - 15:00. Теперь я должен получить сообщение об ошибке «Временной интервал уже существует». И форма не должна быть отправлена.
Как я могу реализовать это в Zend с помощью Zend_Validate_Db_NoRecordExists (или) есть другой способ сделать это?