我必须在我的FORM:isvalid()
中创建自定义form
功能,如下所示,因为我必须检查这两个字段中是否至少填写了其中一个:
class Products_AddForm extends Zend_Form {
public function isValid($data)
{
// Check special post data
$pzn_val = $data['PZN'];
$mar_val = $data['PZO'];
if(empty($pzn_val) && empty($mar_val)) {
$this->getSubForm('sub1')->getElement('PZN')->setErrors(array('PZN or PZO needed'));
$this->getSubForm('sub2')->getElement('PZO')->setErrors(array('PZN or PZO needed'));
}
// Standard validation
return parent::isValid($data);
}
PZN
和PZO
的错误只会在找到其他错误(其他字段)时触发。
我怎样才能获得form error
?
字段PZN
和PZO
定义为not required
。
TIA 马特
答案 0 :(得分:4)
尝试:
public function isValid($data) {
$isValid = parent::isValid($data);
// Check special post data
$pzn_val = $data['PZN'];
$mar_val = $data['PZO'];
if(empty($pzn_val) && empty($mar_val)) {
$this->getSubForm('sub1')->getElement('PZN')->setErrors(array('PZN or PZO needed'));
$this->getSubForm('sub2')->getElement('PZO')->setErrors(array('PZN or PZO needed'));
$isValid = false;
}
return $isValid;
}