symfonyフォームはデータを送信しません-POSTリクエストは空です

SteamyVino

私はsymfonyとtwigテンプレートに不慣れで、Symfonyのformbuilderによって作成されたフォームを使用してデータを送信する問題に苦労しています。「作成」ボタンをクリックしてもデータは送信されません。ナビゲーションバーとサイドバーでベーステンプレートを拡張するテンプレートaddEmployee.html.twigを作成しました。

このフォームは、ベースを拡張していない場合にのみ機能することに気づきました。そのため、フォームが作成されたテンプレートに親テンプレートがない場合にのみ、適切なリクエストが作成され、フォームが送信されます。

base.html.twigテンプレートを拡張するとリクエストが失われる理由がわかりません。また、既に作成した拡張テンプレートでそれを機能させる方法がわかりません。

MainController.phpのnewEmployee関数

  /**
     * @Route("/employee/add", name="add_employee")
     * @Method({"GET","POST"})
     */
    public function newEmployee(Request $request){


      $employee = new Employee();

      $form = $this->createFormBuilder($employee)
          ->setMethod('POST')
          ->add('employeeNumber',TextType::class, array('attr' => array('class'=>'form-control')))
          ->add('name',TextType::class, array('attr' => array('class'=>'form-control')))
          ->add('phone',TextType::class, array('attr' => array('class'=>'form-control')))
          ->add('pool',TextType::class, array('attr' => array('class'=>'form-control')))
          ->add('save',SubmitType::class, array('label'=>'Create','attr'=>array('class'=> 'btn btn-primary mt-3')))
          ->getForm();

          if ($request->isMethod('POST')) {
            $form->submit($request->request->get($form->getName()));
          }


      if($form->isSubmitted() && $form->isValid()){

          $employee=$form->getData();

          $entityManager= $this->getDoctrine()->getManager();
          $entityManager->persist($employee);
          $entityManager->flush();

          return $this->redirectToRoute('homepage');
      }

          return $this->render('/Employee/addEmployee.html.twig',array('form'=>$form->createView()));

  }

addEmployee.html.twig '

{% extends 'base.html.twig' %}

{% block title%} New Article{% endblock %}

{% block body%}

{{form_start(form)}}
{{form_widget(form)}}
{{form_end(form)}}

{% endblock %}

base.html.twig

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>{% block title %}TL Manage{% endblock %}</title>        
        {% block stylesheets %}
        <link rel="stylesheet" href="https://bootswatch.com/4/cosmo/bootstrap.min.css">
        <link rel="stylesheet" href="../css/style.css">
        {% endblock %}
    </head>
    <body>

    {% include 'inc/navbar.html.twig' %}
    {% include  'inc/sidebar.html.twig' %}
     <div id="content">
            {% block body %}{% endblock %}
     </div>

    {% block javascript %}
    <!-- Icons.JS -->
    <script src="https://unpkg.com/[email protected]/dist/ionicons.js"></script>
    <!-- JQUERY -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <!-- Popper.JS -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
    <!-- Bootstrap JS -->
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
    <!-- jQuery Custom Scroller CDN -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/malihu-custom-scrollbar-plugin/3.1.5/jquery.mCustomScrollbar.concat.min.js"></script>
    <script src="js/main.js"></script>
     {% endblock %}
    </body>
</html>

ホームページにリダイレクトしてデータを挿入する代わりに、フォームを送信するとこれが発生します

{% extends 'base.html.twig' %}addEmployee.html.twigから削除した後、フォームは意図したとおりに機能します。残りのUIパーツでそれを機能させる方法はありますか?

SteamyVino

自分で原因と解決策を見つけて恥ずかしい思いをします...

ベーステンプレートに含まれているサイドバーに別のフォームがあり、<form>タグを閉じなかったことがわかりました...したがって、次のようになりました。

inc / sidebar.html.twig

 <form class="employee-Finder">
       <input class="finder-input" type="text">
 <form> <!-- this was the cause -->

したがって、最初のフォームの送信ボタンは、おそらくデフォルトでgetメソッドを持つサイドバーの送信ボタンでした。タグを閉じた後、すべて正常に動作します。すべての提案をありがとう。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

フォームはphpにデータを送信しません

分類Dev

CurlはHTTPPOSTリクエストでフォームデータ全体を送信しません

分類Dev

ノードJSリクエストモジュールはフォームデータを送信しません

分類Dev

HTMLフォームはデータをPOSTしません($ _POST []は空です)

分類Dev

jquery / Ajaxフォーム送信はPOSTデータを転送しません

分類Dev

HTMLフォームはデータを送信できません

分類Dev

Laravelルート、フォームはデータベースにデータを送信しません

分類Dev

フォームはパラメータを送信しません

分類Dev

フォームはデータベースにデータを送信しません

分類Dev

登録フォームはデータベースにデータを送信しません

分類Dev

登録フォームはデータベースLaravel5.2にデータを送信していません

分類Dev

HTMLフォーム送信後のPOSTデータは空ですが、リクエストタイプはPOSTです

分類Dev

Squarespace:フォーム送信の失敗:JavaScriptでフォームデータを正常に処理した後、フォームはMailchimpに送信されません

分類Dev

Duskは、フォーム送信をテストするときにLaravelが行うのと同じ方法でPOSTリクエストを処理しません

分類Dev

ajaxお問い合わせフォームはPOSTデータをphpに送信しません

分類Dev

フォーム送信から新しいデータベースエントリを作成できません

分類Dev

C#MVCHTMLフォームタグの投稿は入力タグからデータを送信しません

分類Dev

Laravelでフォームデータを送信できません

分類Dev

Symfony 3(FOSrestBundle)+ Angular 1POSTリクエストは空です

分類Dev

NativeScript Vueはフォームデータ(multipart / form-data)を使用してリクエストを送信します

分類Dev

AJAXはフォームを送信しますが、停止しませんが、データベースにデータを挿入します

分類Dev

symfonyフォームはファイルをコントローラーに送信しません

分類Dev

[送信]をクリックした後、ステッパーフォームはデータを送信しません。MDBootstrap Laravel

分類Dev

POSTリクエスト本文のJsonデータとフォームデータとして画像を送信することは可能ですか?

分類Dev

PythonPyQtはフォーム間でデータを送信します

分類Dev

XamarinフォームのHTTPSデータリクエストはAndroidでは機能しません

分類Dev

PHPフォームは$ _POST値を送信しません

分類Dev

Sails.jsフォームの投稿はデータを送信していません

分類Dev

エクスプレスルートへのPOSTリクエストの送信-フォームデータを受信した後、res.renderはトリガーされません

Related 関連記事

  1. 1

    フォームはphpにデータを送信しません

  2. 2

    CurlはHTTPPOSTリクエストでフォームデータ全体を送信しません

  3. 3

    ノードJSリクエストモジュールはフォームデータを送信しません

  4. 4

    HTMLフォームはデータをPOSTしません($ _POST []は空です)

  5. 5

    jquery / Ajaxフォーム送信はPOSTデータを転送しません

  6. 6

    HTMLフォームはデータを送信できません

  7. 7

    Laravelルート、フォームはデータベースにデータを送信しません

  8. 8

    フォームはパラメータを送信しません

  9. 9

    フォームはデータベースにデータを送信しません

  10. 10

    登録フォームはデータベースにデータを送信しません

  11. 11

    登録フォームはデータベースLaravel5.2にデータを送信していません

  12. 12

    HTMLフォーム送信後のPOSTデータは空ですが、リクエストタイプはPOSTです

  13. 13

    Squarespace:フォーム送信の失敗:JavaScriptでフォームデータを正常に処理した後、フォームはMailchimpに送信されません

  14. 14

    Duskは、フォーム送信をテストするときにLaravelが行うのと同じ方法でPOSTリクエストを処理しません

  15. 15

    ajaxお問い合わせフォームはPOSTデータをphpに送信しません

  16. 16

    フォーム送信から新しいデータベースエントリを作成できません

  17. 17

    C#MVCHTMLフォームタグの投稿は入力タグからデータを送信しません

  18. 18

    Laravelでフォームデータを送信できません

  19. 19

    Symfony 3(FOSrestBundle)+ Angular 1POSTリクエストは空です

  20. 20

    NativeScript Vueはフォームデータ(multipart / form-data)を使用してリクエストを送信します

  21. 21

    AJAXはフォームを送信しますが、停止しませんが、データベースにデータを挿入します

  22. 22

    symfonyフォームはファイルをコントローラーに送信しません

  23. 23

    [送信]をクリックした後、ステッパーフォームはデータを送信しません。MDBootstrap Laravel

  24. 24

    POSTリクエスト本文のJsonデータとフォームデータとして画像を送信することは可能ですか?

  25. 25

    PythonPyQtはフォーム間でデータを送信します

  26. 26

    XamarinフォームのHTTPSデータリクエストはAndroidでは機能しません

  27. 27

    PHPフォームは$ _POST値を送信しません

  28. 28

    Sails.jsフォームの投稿はデータを送信していません

  29. 29

    エクスプレスルートへのPOSTリクエストの送信-フォームデータを受信した後、res.renderはトリガーされません

ホットタグ

アーカイブ