* sfForm [#ccc48efd]
** bind()でフォームオブジェクトにリクエストパラメータを設置する [#z47231e1]
$user_info = $request->getParameter('user_info');
$form->bind($user_info);
** bind()済みのフォームオブジェクトからフィールドの値を取り出す 1 [#a60bcc62]
$user_name = $form->getOption('name');
$user_age = $form->getOption('age', 18); // ageが未定義なら18
** bind()済みのフォームオブジェクトからフィールドの値を取り出す 2[#y4c59dd3]
$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();
}
** フォームのフィールドのデフォルト値を取得・設定する [#ec2de432]
$form->setDefault('age', 18);
$user_info = array('age' => null);
$form->bind($user_info);
$age = $form->getDefault('age');
** 参考 [#icddc8a7]
- http://www.symfony-project.org/api/1_2/sfFormField
- http://www.symfony-project.org/api/1_2/widget
-- http://www.symfony-project.org/api/1_2/sfWidgetForm