私は3層のフォーム構造を持っています。
frmSubFactsなどのサブフォームを持つメインフォームfrmMain(コンテナフォームのように機能します)があります。また、 frmSubFactsなどのこれらのサブフォームにはサブフォームがあります。例:frmTabSubCountry。最も内側のサブフォームには、テキストフィールドなどのフォーム要素が含まれています。これらは、フォームレベルでsetBelongsToメソッドを使用してグループ化されます。
コードはZendX_JQueryを使用して、これらのフォームを2つのタブ行にまたがってレンダリングし、 frmSubFactsおよびその他の外側のサブフォームが上部のタブ内にあり、ユーザーの選択に基づいて、サブサブフォーム(frmTabSubCountryなど)が2番目の内側のタブ行に沿って表示されます。
フォームはうまくレンダリングされます。唯一の問題は、プログラムで最も内側のサブフォーム内のフィールド/要素に値を設定することです。
要素フィールドの名前は、テキストボックス名がFacts [Country] [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アクションは期待どおりですが、サブフォームを取得する最後の行は、「ファクト」サブフォームを取得した後に失敗します。助けてくれてありがとう