2012-11-01 25 views
10

वहाँ Zend फ्रेमवर्क में notInArray सत्यापनकर्ता निष्क्रिय करने के लिए एक रास्ता है 2. इंटरनेट पर सभी जानकारी इस फैशन में Zend फ्रेमवर्क 1 में notInArray सत्यापनकर्ता निष्क्रिय करने के लिए कैसे, उदाहरण के लिए पता चलताअक्षम notInArray सत्यापनकर्ता Zend फ्रेमवर्क 2

यदि आप इनएरे सत्यापनकर्ता को बिल्कुल नहीं चाहते हैं, तो आप इस व्यवहार को तत्व पर सेट रजिस्ट्रारइनएरेरेविलिएटर (झूठी) को कॉल करके या तत्व निर्माण पर रजिस्टरइनएरे वेरिएंटर कॉन्फ़िगरेशन कुंजी को झूठ बोलकर अक्षम कर सकते हैं।

एक stackoverflow में पदों पाया जा सकता है here

दुर्भाग्य से यह संभव नहीं है Zend फ्रेमवर्क 2 में तो मामले में अगर किसी को भी एक टिप है कि यह कैसे निष्क्रिय किया जा सकता है।

+0

एर्म, प्रमाणकों केवल संलग्न अगर आप उन्हें बताओ। आप वास्तव में वैधता से जुड़े नहीं होना चाहते हैं? आपका प्रश्न बिल्कुल स्पष्ट नहीं है, कृपया अपडेट करें ताकि लोग आपके प्रबल – Sam

+0

हे सैम की बेहतर समझ प्राप्त कर सकें! मेरे पास कोई वैधता वाला कोई चयन नहीं है लेकिन ZF2 कहता रहता है कि 'इनपुट घाटी में नहीं मिला था'। ऐसा क्यूँ होता है? – vinigarcia87

+0

यह सरणी में नहीं है डिफ़ॉल्ट सत्यापनकर्ता – tawfekov

उत्तर

0

मैं एक ही मामले के साथ आया था: जब मैं यह करने के लिए, अपने खुद के चयन प्रपत्र तत्व बनाने के साथ समाप्त होने का कोई उपाय नहीं है, मैं अपने में परिवर्तन के साथ प्रदान करेगा पाया खोज के बहुत बाद ajax के माध्यम से मेरी एचटीएमएल चयन तत्व को आबाद करने गया था:

/** 
    * Provide default input rules for this element 
    * 
    * Attaches the captcha as a validator. 
    * 
    * @return array 
    */ 
    public function getInputSpecification() 
    { 
     $spec = array(
      'name' => $this->getName(), 
      'required' => true, 
      //// make sure to delete the validators array in the next line 
      'validators' => array( 
       $this->getValidator() 
      ) 
     ); 

     return $spec; 
    } 
2

मैं एक ही समस्या थी और क्या मैंने किया तत्व पॉप्युलेट से पहले उसे सत्यापित करने में, उदाहरण के लिए है:

$clientForm->get('city')->setValueOptions($options); 
$clientForm->setData($post); 

if ($clientForm->isValid()) { 
    // 
} else { 
    // 
} 

यह notInArray valitador अक्षम न करें लेकिन आप इसे चाल कर सकते हैं।

0

मैं इस लिंक पर इस मिल गया है और मैं इसे पोस्ट के रूप में मैं इसे एक महान समाधान पाया सोचा .... http://samsonasik.wordpress.com/2012/10/01/zend-framework-2-extending-zendform-to-add-select-multicheckbox-emaildate-textarea-and-radio-element/

डिफ़ॉल्ट सत्यापनकर्ता अक्रिय करने की कोशिश नहीं करते। setData से पहले चुनिंदा विकल्प मानों को फिर से मानता है।

$form->get('state_id') 
    ->setOptions(
      array('value_options'=> $Newstatecollection)) ; 

समारोह को निष्क्रिय की गंदगी बचाता है अगर आप इसे कहीं और

9

जरूरत है संस्करण 2.2 के बाद से, Zend फ्रेमवर्क बुला अक्षम inArray सत्यापनकर्ता करने की क्षमता प्रदान करते हैं:

$element->setDisableInArrayValidator(false); 

या गुजर विकल्प एक तत्व के लिए:

'disable_inarray_validator' => false 
+0

यह केवल संदेशों को अक्षम करता है ...... –

+4

ठीक है, लेकिन थोड़ा अलग है। अक्षम करने के लिए आपको 'disabled_inarray_validator' => true' होना चाहिए, क्योंकि दो बार अस्वीकृति स्वीकृति है। – zeliboba

0

.. आप InputFilter

$this->add(array(
     'name' => 'your-elements-name', 
     'required' => false, 
    )); 

में required => false जोड़ने के लिए, सब पर सत्यापन की जरूरत नहीं है मेरे लिए काम किया है, तो