여러 폼 요소를 하나의 유효성 검사기에 결합하는 방법은 무엇입니까? 나는 구성 주소 정보를여러 요소를 하나의 유효성 검사기에 결합하는 방법은 무엇입니까?
- 거리 주소
- 우편 번호
- 내가 streetValidator, 의해, ZipCodeValidator, postOfficeValidator로 각 유효성 검사기를 추가하면 내가 문제를 결국
우체국 : 어딘가에 (확인 ok), 어딘가에서 10101 (검증 ok도) 및 barOffice 어딘가에 (검증 ok도) foostreet 수 있습니다. 그러나 모든 주소 정보가 결합되어 "foostreet, 10101, barOffice"라는 주소가 없습니다.
<?php
$f = new Zend_Form();
$street = new Zend_Form_Element_Text('street');
$f->addElement($street);
$zip = new Zend_Form_Element_Text('zip');
$f->addElement($zip);
$office = new Zend_Form_Element_Text('office');
$f->addElement($office);
그러나 그것이 있어야 : : 이제
당신이
$f = new Zend_Form();
// All three fields are still seperated
$address = new My_Address_Fields();
$address->addValidator(new addressValidator());
$f->addElement($address);
유효성 검사기는
class addressValidator extends Zend_Validator_Abstract
{
public function isValid()
{
//$street = ???;
//$zip = ???;
//$office = ???;
// XMLRPC client which does the actual check
$v = new checkAddress($street, $zip, $office);
return (bool)$v->isValid();
}
}
문제를 일으키는 MyAddressField를 만드는 방법에 대한 부분이라고 생각합니다. 컴포지트를 레이어 화하여 복합 양식 요소를 만들어야합니다. 체크 아웃 [이] (http://weierophinney.net/matthew/archives/212-The-simplest-Zend_Form-decorator.html) [시리즈] (http://weierophinney.net/matthew/archives/213-From- How-to-layer-decorators.html) [기사] (http://weierophinney.net/matthew/archives/217-Creating-composite-elements.html#extended) [폼 데코레이터에서] (http://devzone.zend.com/article/3450). 특히'articles'으로 링크 된 것들은 그걸 가지고 있어야합니다. – Gordon