0

コントローラーでIDを見つけます

 $oggetto = $this->getDoctrine()
        ->getRepository('AcmeTryBundle:Try')
        ->find($id);

この$valuesをformに渡した後(ちょうど?)

$form = $this->createForm(new TryType(), $oggetto);

そしてFormTypeで?何を入れたの?

public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('name','text')  ? 
4

3 に答える 3

0

あなたのアプローチは良いです。

1) $oggettoDB でオブジェクトを取得する

2) FormType に渡します$form = $this->createForm(new TryType(), $oggetto);

3) フォーム タイプに必要なフィールドを追加します。

4) フォームをビューに送信します'form' => $form->createView()

5)ビューで、フォームを呼び出します

<form action="{{ path('task_new') }}" method="post" {{ form_enctype(form) }}>
    {{ form_widget(form) }}

    <input type="submit" />
</form>

フィールド (3) で定義したもの) には、オブジェクト データが自動的に入力されます。その後、それらを変更および編集できます。

詳細については、ドキュメントを参照してください: http://symfony.com/doc/current/book/forms.html

于 2012-04-21T23:05:25.633 に答える
0

あなたのフォームは問題ないようです

class TryFormType extends AbstractType {
    public function buildForm(FormBuilder $builder, array $options)
        {
            $builder->add('name','text')  ;
        }

 public function getName() {
        return 'tryform';
    }
}

関数 getName はフォームに名前を付けます。この場合は tryform です。

コントローラーでは、次のような return ステートメントを追加できます。

return $this->render('AcmeTryBundle:Default:TryForm.html.twig', array(
                    'TryForm' => $form->createView()
                ));

twig ファイルでは、次のようにアクセスします。

{{ form_widget(TryForm.name) }}

そこに値が自動的に渡されます。その後、編集できます

于 2012-04-23T08:55:38.147 に答える