テーブルに表示されたオブジェクトのリストから値を編集する Yii ActiveForm を作成しようとしています。
関連するクラス:
class ResultForm extends CFormModel {
/**
* @var array[Result]
*/
public $results; //Filled with an array of Result objects
}
class Result {
public $requiredArea;
}
私の見解:
<% $form = $this->beginWidget('CActiveForm'); %>
<table>
....
<% $rowCounter = 0; foreach($resultForm->results as $result): %>
...
<tr>
....
<td>
<!-- This doesn't work -->
<% $form->textField($resultForm,
"results[$rowCounter]->requiredArea") %>
<!-- Just displaying the value works -->
<%= $resultForm->results[$rowCounter]->requiredArea %>
</td>
...
</tr>
<% $rowCounter++; endforeach; %>
</table>
<% $this->endWidget(); %>
テキスト フィールドがレンダリングされ、Yii は文句を言いませんが、適切な値が含まれていません。
これを機能させる方法はありますか、またはフォーム内のオブジェクトの配列を反復処理するためのより良いアプローチはありますか?