私はZend_ElementのbelongsToのプロパティで行うために他のスレッドやバグレポートを見ていないが、私が経験してるものに直接関係は何もしました...ここで奇妙な行動
は(私です単純化された)Zend_Formの:罰金であると要素がそうようにレンダリング
$form = new Zend_Form();
$form->addElement('text', 'fname', array('belongsTo' => 'user'));
$form->addElement('text', 'sname', array('belongsTo' => 'user'));
:
<input type="text" name="user[fname]" />
<input type="text" name="user[sname]" />
...まさに私が欲しいものです。フォームが送信されたときに
しかし、要素の値が...あなたが呼び出す場合は、
$form->getValue('fname') or $form->getValue('sname')
ないで呼び出した場合にのみアクセス可能です
私は見て期待してい何$form->getValue('user');
$ form-> getValues( 'user')を呼び出すと、値の配列になります。これは予想される動作である場合は、配列にそれらを置くいただきました!ポイント、その後、
$form->getValues();
を呼び出す場合 は、値の配列は、はっきりと見えるのですか? "user [fname]"と "client [fname]"の区別はないので、実際には別の項目に属していても "fname"という名前の別の要素を追加すると、前の項目を上書きします。
私が望む結果をもたらすサブフォームを追加しようとしましたが、すべてのサブフォーム要素が一緒にレンダリングされるようになりました。本当に望むのは、 'array'要素をランダムな場所に配置することですこの...
<input type="text" name="user[fname]" />
<input type="text" name="some-other-field" />
<input type="text" name="some-other-field2" />
<input type="text" name="user[sname]" />
<input type="text" name="another-field-too" />
こんにちはRockyFord - あなたの提案に感謝しますが、それでも意味をなさない - belongsToを設定すると、それが属しているものの子(またはサブフォーム)として要素を設定する必要があります。それ以外の場合は、それを個々の要素として作成するだけであれば、belongsToを設定する必要はありません。 – pavsid
あなたの視点によります。 getValue($ key)は、他の設定にかかわらず、単一の要素の値を返すことを意図しています。 getValues()は、データセットのすべての値を配列として返す手段を提供します。しかし、ZFのクールな部分は、彼らの選択に同意しない場合、それらを変更することです。 Zend/Formを拡張し、独自の関数でgetValue()をオーバーライドします。 – RockyFord