0

最近、Symfony2 を使用して簡単な Web アプリを作成し始めました。主な機能は、フォームを使用してデータベースからデータを保存/取得することです。FormType と Controller のコードを追加します。

<?php
class RegistroController extends Controller{

    public function registrofamAction(){
        $peticion = $this->get('request');
        $em = $this->get('doctrine')->getEntityManager();

        $familia = new Familia();

        $familia->setRol($rol='fam');

        $form = $this->get('form.factory')->create(
                new FamiliaType(),
                array()
                );


        $form->setData($familia);

        if ($peticion->getMethod() == 'POST') {
            $form->bind($peticion);


            if ($form->isValid()) {

                $familia->setProgenitor1($Nombrep1);

                $em->persist($familia);
                $em->flush();
            }
        }

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




}
?>

簡単だとは思いますが、フォームがどのように返されるのか明確ではありません。フォームは$peticion? フォーム情報とデータベースを管理するにはどうすればよいですか?

全てに感謝!

4

2 に答える 2

0

フォームは$form変数にあります。コントローラーを初めて実行するときは、おそらく GET モードであり$form、新しいFamilia. 2 番目の呼び出しでPOSTは、小枝で a を実行した後bind、要求データ ( $petition) を に送信します。これは検証され、すべてが問題なければ、 using doctrine エンティティ マネージャー$formを永続化します。$familia

あなたが持っているのは、symfonyの本で非常によく説明されている典型的なコントローラーです:

http://symfony.com/doc/current/book/forms.html

symfony の本http://symfony.com/doc/current/book/index.htmlを注意深く読んでください。これは非常に読みにくい文献ですが、非常によく説明されているため、十分に価値があります。

于 2013-07-30T07:59:52.640 に答える
0

ここで request メソッドを使用して式を作成すると、データが $petition 変数に格納されます (この変数を表示して、どのように構築されているかを確認できます)。

次に、フォームオブジェクトのデータを「バインド」し、それが正しい場合、データは永続化されます

于 2013-07-30T08:02:24.827 に答える