sfForm
bind()でフォームオブジェクトにリクエストパラメータを設置する
$user_info = $request->getParameter('user_info');
$form->bind($user_info);
bind()済みのフォームオブジェクトからフィールドの値を取り出す
$field_data = array();
$form->rewind();
while ($key = $form->key()) { // イテレータを使わない場合 → foreach (array('name', 'age', 'sex') as $key) {
$field = $form[$key];
$widget = $field->getWidget();
if ($key == 'age') {
$choices = $widget->getOption('choices'); // 1:男 2:女だとか
$val = $choices[$field->getValue()];
} else {
$val = $field->getValue();
}
$field_data[$key] = $val;
$form->next();
}
参考