0

フォームからデータベースへのデータ送信に問題があります。私のフォームは生成されましたが、データは送信されませんでした。クリックしてフォームを URL に送信した後、リダイレクトするだけです。 https://github.com/szopenkrk/mgr

これはコントローラからの parf です:

   /**
* @Route("/autor.html", name="url_autor")
* @Template()
*/
    public function autorAction()
    {
        $document = new Work();
        $form = $this->createFormBuilder($document)
            ->add('contentWork', 'text')
            ->add('workDate', 'date')
            ->add('title')
            ->add('file')
            ->getForm()
        ;

        $loggedUser = $this->getUser();

        if ($this->getRequest()->isMethod('POST')) {
            $form->bind($this->getRequest());
            if ($form->isValid()) {
                $em = $this->getDoctrine()->getManager();
                /** @var $document \My\WorkBundle\Entity\Work */
                $document->setAuthor($loggedUser);
                $em->persist($document);
                $em->flush();

                return $this->redirect($this->generateUrl("url_thanks"));
            }
        }

        return array('form' => $form->createView());
    }

これはエンティティの一部です: https://github.com/szopenkrk/mgr/blob/master/src/My/WorkBundle/Entity/Work.php

4

1 に答える 1

0

その理由は、フォームをレンダリングするときに、フォームに適切なアクションを設定していないためです。代わりに「#」を入れると、それが得られた理由です。

したがって、必要なのは、フォーム要素のアクション属性を変更することだけです。たとえば、作成者ビューの変更:

<form action="#" method="post" {{ form_enctype(form) }}>

の中へ

<form action="{{ path('url_author') }}" method="post" {{ form_enctype(form) }}>
于 2013-07-14T19:32:45.540 に答える