1

私のフォームでは、select要素に選択された(デフォルトの)値を設定したいと思います。しかし、使用setDefaultsは私にはうまくいきません。

これが私のコードです:

$gender = new Zend_Form_Element_Select('sltGender');
$gender->setMultiOptions(array(
    -1 => 'Gender',
    0 => 'Female',
    1 => 'Male'
))
->addValidator(new Zend_Validate_Int(), false)
->addValidator(new Zend_Validate_GreaterThan(-1), false);

$this->setDefaults(array(
    'sltGender' => 0
));

$this->addElement($gender);

私のコントローラーは、フォームを表示するだけのビュー変数にフォームを割り当てるだけです。

を使用して機能し$gender->setValue(0)ますが、デフォルト値の配列を使用して一度にすべてを設定する方が簡単です。私はここで何かを誤解していますか?

また、クラスとメソッドのZend Frameworkドキュメントはどこにありますか?Javaのドキュメントに似たものを探しています。私が見つけた最高のものはこれですが、私はそれが好きではありません-特に検索しようとするたびにクラッシュするためです。

4

1 に答える 1

3

やってみました:

$this->addElement($gender);

$this->setDefaults(array(
    'sltGender' => 0
));

また、 http://framework.zend.com/issues/browse/ZF-12021もご覧ください

ご覧のとおり、上記の問題はあなたが説明している問題と似ています。Zendは、オブジェクトを作成して設定を割り当てる順序に非常にこだわっているようです。

Zendがあなたに望んでいる順序で何かをしなければならないのではないかと思います(これは十分に文書化されていないようですが、試行錯誤によってのみ発見されます)、またはライブラリをハックしてそれを実行させますあなたはそれをしたいです。

于 2012-07-20T00:08:03.660 に答える