2011-08-05 15 views
1

私は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アクションが期待されているように、サブフォームを取得するための最後の行は「事実」サブフォームを取得した後に失敗します。この場合に役立ちます

答えて

0

チェックを助けてくれてありがとう:

$this->element->Facts->Country->country_name->setValue('Singapore'); 
関連する問題