2013-03-30 9 views
5

何とか私はZend Framework 2のフォーム要素を無視することができません。ZF2:無視するフォーム要素を設定するには?

このすべてが動作していないよう:

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

これはそれはZendのFramework1で仕事に使用する方法です:

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

EDIT:
なぜだろう私はオプション "無視"が必要ですか?

フォームに送信ボタンがあるとします。通常のPHPでは、$_POSTのようなものもあなたの送信ボタンをリストします。 Zend 1には、このような要素を除外する有用なオプションsetIgnore($flag)getIgnore()があります。 $form->getValues()(検証後)は、フラグ 'ignore'がすべてTRUEに設定されているすべての要素を除外します。 ZF1 manualを参照してください。

+2

を探していると思います。また、送信要素を無視するのはどのような目的ですか?検証から除外することを意味しますか?空の値を許可するのですか?あなたの質問は本当にまっすぐではありません。 – Sam

+0

@Sam:あなたのヒントをありがとう。私は "Zend-Frameworkers"が私の言いたいことを知っていると思った。 ;)私はオリジナルを編集しました。明確にするために投稿してください。 – mdthh

+1

私が知る限り、ZF2にはそのような機能はなく、個人的にはこれは非常に役に立たないものであると考えています。 POSTデータのいずれかが必要ない場合は、単に使用しないでください。それを全く持たないという本当の必要はありません。あなたは '$ form-> setData($ request-> getPost())'を使ってフォームデータを設定するので、単に 'getPost()'を変数に入れて、 'unset($ postData ['submit']) 'など... – Sam

答えて

2

チェックアウトを約inputfilters

私の使用はそのようなものです:

  1. コントローラの使用でフィルタ
  2. を作成し、フォーム

  3. を作成すること

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

フィルタについては、これを行うことができます: $ factory = new InputFactory();

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

これは解決策ではありません(少なくともフォームのbind()メソッドを使って作業しているとき)、さらにallowEmptyはZF2 2.4.8以降で廃止予定です – MonkeyMonkey

0

私はあなたが無視するとはどういう意味ですか

'options' => array(
    'exclude' => true, 
), 
関連する問題