2011-11-02 9 views
0

私はユーザーがアカウントを作成できるようにpropelフォームを使用していますが、フォームには2つの部分があります。入力してプレビューします。私のプレビューページでPHP symfony選択肢を文字列に変換する

私はいつものように、フォームの値を宣言し、これらは前のフォーム

public function configure() { 
    //Preview page no fields are displayed anyway xD 
    $this->useFields(array('email', 'user_gender_id', 'search_gender_id', 'content', 'age', 'location')); 

しかし、その代わりに、私はページ上の値をレンダリングしようとしているフィールドを出力することにより、提供されています。

それだけで選ばれたIDではなく、それの文字列表現を出力し、私のsfWidgetFormPropelChoice/sfWidgetFormChoiceフィールドの残念なことに
<?php echo $form->renderHiddenFields(); ?> 

    <?php foreach($form as $field): ?> 

     <?php if(!$field->isHidden()): ?> 
      <tr> 
       <th><?php echo $field->renderLabel() ?></th> 
       <td><?php echo $field->getValue(); ?></td> 
      </tr> 
     <?php endif; ?> 

    <?php endforeach; ?> 

<?php else: ?> 

    <?php echo $form; ?> 

<?php endif; ?> 

ウィジェットの値のテキスト表現を出力する適切な方法がSymfonyにありますか?それとも一緒に何かをハックする必要がありますか? (任意のアイデア?)

多くのおかげで、

ペッツ、

答えて

0

私は、次の手順を実行して、この問題を回避ました:

<td><?php if(method_exists($field->getWidget(), "getChoices")) { 
    $choices = $field->getWidget()->getChoices(); 
    echo $choices[$field->getValue()]; 
} else 
    echo $field->getValue(); 
?></td> 

私はそれは狂気私を運転されているように、これは誰かに使用である願っています!

0

試してみてください。

$obj = $form->getObject(); 

あなたのオブジェクトの値を持っています。次に:

echo $obj[$field->getName()]; 

これはほとんどの場合有効です。しかし、そうでない場合は、すべてのプレビューフィールドを手動で書き込んで、上記の$objを使用して表示する必要があります。

関連する問題