2012-11-18 20 views
8

मेरे मॉडल वस्तु को लागू करता है InputFilterAwareInterface और getInputFilter है() विधि, कि लौट आए Zend \ InputFilter \ InputFilter उदाहरणZend फ्रेमवर्क में प्रपत्र वर्ग के बिना InputFilter का उपयोग कैसे करें 2

मैं, मेरे मामले में फार्म की जरूरत नहीं है मैं तो बस सरणी से मान्य तत्वों की आवश्यकता है। मैं फॉर्म क्लास के बिना सरणी से डेटा को सत्यापित करने के लिए ज़ेंड \ इनपुटपुट \ इनपुटपुट का उपयोग कैसे कर सकता हूं?

उत्तर

17

आशा है कि कोड स्वतः स्पष्ट है (अपने सरणी, setValidationGroup सभी तत्वों को जांच करने के लिए सेट करने के लिए setData, और isValid सत्यापन के परिणाम प्राप्त करने के): से केवल एक पंक्ति को मान्य करने के

use \Zend\InputFilter\InputFilterInterface; 

/* ... */ 

/** @var $data array */ 

/** @var $filter InputFilterInterface */ 
$filter = $this->getInputFilter(); 

$isValid = $filter->setData($data) 
        ->setValidationGroup(InputFilterInterface::VALIDATE_ALL) 
        ->isValid(); 

if (!$isValid) 
{ 
    $errorMessages = $filter->getMessages(); 
    /* ... */ 
} 
+0

आपको ऐसे उपाय बता सकते हैं सेट? – yurisnk

+3

@yurisnk आप 'setValidationGroup()' पर कॉल में मान्य करने के लिए फ़ील्ड की सूची सेट कर सकते हैं, केवल '-> setValidationGroup (' field_name ') का उपयोग एकल फ़ील्ड या '-> setValidationGroup (array (' field_name1 ',' field_name2 'के लिए करें)) 'उपर्युक्त उदाहरण में फ़ील्ड के सेट के लिए। –