Вам нужен пользовательский валидатор . вы можете сделать это, расширяя Zend_Validate_Abstract
, или вы можете просто использовать валидатор обратного вызова .
Для этого вам нужно добавить это к вашему элементу:
$elem = new Zend_Form_Element_Text('elem_name');
$elem->setLabel('Label Name:')
->setRequired(true)
->addValidator('callback', true, array('callback' => array($this, 'functionName')));
$this->addElement($elem);
И в том же классе (обычно ваша форма принадлежит классу, расширяющему Zend_Form), вы добавляете этот метод:
public function functionName($csvString) {
// stuff here using explode(',', $csvString)
// foreach() to iterate over the result and match against the db each $value
}
См. explode () для получения дополнительной информации.
Однако, если ваш элемент формы будет вызываться более одного раза и в разных формах, тогда я не рекомендую вам использовать обратный вызов, но вам лучше написать свой собственный валидатор, теория остается прежней хоть. Посмотрите здесь для получения дополнительной информации о том, как писать валидаторы.