2013-03-30 15 views
5

In qualche modo non riesco ad ottenere gli elementi del modulo in Zend Framework 2 per essere ignorato.ZF2: come impostare gli elementi del modulo da ignorare?

Tutto questo non sembra funzionare:

$this->add(array(
    'name' => 'submit', 
    'ignore' => TRUE, 
    'attributes' => array(
    'type' => 'submit', 
    'value' => 'Go!', 
    'id' => 'submitbutton', 
    'ignore' => TRUE 
), 
'options' => array(
    'ignore' => TRUE 
) 
)); 

Ecco come utilizzato per lavoro in Zend Framework1:

//Zend Framework 1 
$this->addElement(
    'submit', 
    'login', 
    array(
    'ignore' => true, 
    'label' => 'Login' 
    ) 
); 

EDIT:
Perché Ho bisogno dell'opzione "ignora"?

Supponiamo che il tuo modulo abbia un pulsante di invio. Con PHP normale, qualcosa come $_POST elencherà anche il pulsante di invio. Zend 1 ha le opzioni utili setIgnore($flag) e getIgnore() per escludere tali elementi. $form->getValues() (dopo la convalida) escluderebbe tutti gli elementi con flag "ignora" impostato su TRUE. Vedi ZF1 manual.

+2

Che cosa si intende per ignorare. E quale scopo sarebbe ignorare un elemento di invio? Vuoi dire escludere dalla convalida? Intendi consentire valori vuoti? La tua domanda non è davvero semplice. – Sam

+0

@ Sam: Grazie per il tuo suggerimento. Pensavo che "Zend-Frameworkers" avrebbe saputo cosa intendo. ;) Ho modificato la mia orig. pubblicare per chiarire. – mdthh

+1

Per quanto ne so, ZF2 non ha questa caratteristica e personalmente la considererei una cosa buona in quanto anche piuttosto inutile. Se non hai bisogno di alcun POST-Data, semplicemente non usarlo. Non c'è davvero bisogno di non averlo affatto. Dal momento che hai impostato il form-dati usando '$ form-> setData ($ request-> getPost())' potevi semplicemente mettere il 'getPost()' in una variabile e poi 'unset ($ postData ['submit']) 'o così ... – Sam

risposta

2

Partenza su inputfilters

Il mio uso è così:

  1. creare il modulo
  2. creare un filtro
  3. in uso controllore che

    $form = new BasicForm(); 
    $form->setInputFilter(new BasicFilter()); 
    

Informazioni sul filtro: $ factory = new InputFactory();

$this->add($factory->createInput(array(
     'name' => 'birthday', 
     'required' => false, 
     'allowEmpty' => true,)); 
+0

Questa non è la soluzione (almeno quando si lavora con il metodo bind() del modulo), inoltre allowEmpty è deprecato poiché ZF2 2.4.8 – MonkeyMonkey

0

Penso che si sta cercando

'options' => array(
    'exclude' => true, 
), 
Problemi correlati