私は3段のフォーム構造を持っています。ネストされたzendサブフォームの要素に値を割り当てる
メインフォームfrmMain(コンテナフォームのように機能します)にサブフォーム(frmSubFacts)があります。 frmSubFactsのようなサブフォームにはサブフォームがあります。たとえば、frmTabSubCountryです。最も内側のサブフォームには、テキストフィールドなどのフォーム要素が含まれています。これらは、フォームレベルでsetBelongsToメソッドを使用してグループ化されます。
コードが frmSubFacts及び他の外側のサブフォームは上部タブ内にあり、かつユーザの選択に基づくように2タブ線を横切ってこれらのフォームをレンダリングするZendX_JQueryを使用して、(などfrmTabSubCountry)サブサブフォーム第2の内側タブ線に沿って表示される。
フォームがうまく描画されます。唯一の問題は、プログラムで最下位のサブフォーム内のフィールド/要素に値を設定することです。
要素のフィールド名は、テキストボックスの名前がのようになるように、階層と関係に基づいてレンダリングされます。[国] [county_name]
ただし、このフィールドにどのように値を割り当てることができますか?私は、次のオプションを試してみました:アプリケーションがうまくレンダリング
$arrFormData['Facts[Country][county_name]'] = 'Singapore';
$Form->populate(array('Facts'=>
array('Country'=> array('country_name'=> 'Singapore'))));
$form->Facts->Country->country_name->setValue('Singapore');
$form->getSubForm('Facts')
->getSubForm('Country')
->getElement('country_name')->setValue('Singapore');
がとPOSTアクションが期待されているように、サブフォームを取得するための最後の行は「事実」サブフォームを取得した後に失敗します。この場合に役立ちます