Symfony2フォーム処理

ファビアン

フォームを使用して、ajaxを介してapiメソッドにエンティティデータを処理しています。

私の型クラス:

/**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add(
        $builder->create('basicdata', 'form', array('virtual' => true))
        ->add('firstname', null, array('required' => true))
        ->add('lastname', null, array('required' => true))
    );        
    $builder->add('contactdetails', new ContactdetailsType());
    $builder->add('medialinks', new MedialinksType());
}

ご覧のとおり、フォームを3つのセクションに分けています。1つはbasedataで、2つはcontactdetailsとmedialinksを保持するための追加のエンティティです。

私のJavaScriptでは、作成ボタンに次のリスナーがあります。

$('#player_form_create').on('click', function(e){
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: remotePathPlayerCreate,
        data: $('.form').serialize()
    });
});

chromes開発者ツールによると、POSTデータは次のようになります。

player_form[basicdata][firstname]:Harvey
player_form[basicdata][lastname]:Specter
player_form[contactdetails][email]:[email protected]
player_form[medialinks][website]: http://

私のAPIアクションでは、リクエストを処理して新しいプレーヤーレコードを保存したいと思います。

public function cpostAction()
{
  $player = new Player();
  $form = $this->createForm(new PlayersType(), $player);
  $form->handleRequest($this->getRequest());
  if($form->isValid()){
    $em = $this->getDoctrine()->getManager();
    $em->persist($player);
    $em->persist($player->getContactdetails());
    $em->persist($player->getMedialinks());
    $em->flush();

    return $this->redirectView(
      $this->generateUrl(
        'get_player',
        array('id' => $player->getId())
      ),
      Codes::HTTP_CREATED
    );
  }

  return array(
    'processedForm' => $form
  );
}    

あなたがすでに知っているかもしれないように、私が要求を処理したい間に問題が起こります。$this->getRequest()リクエストハンドラーに必要な形式のPOSTデータ情報が含まれていないと思います。

このようなデータを投稿すると、500が表示されExpected argument of type \"Symfony\\Component\\HttpFoundation\\Request\", \"array\" givenます。

POSTデータがリクエストオブジェクトとして送信されるようにするにはどうすればよいですか?

ファビアン

解決策を見つけました:submit()関数を使用$form->submitしてフォーム送信を処理する方法のページによると、配列データをフォームに送信するために使用しています。

  $form->submit($this->getRequest()->request->get($form->getName()));

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Symfony2で追加のフォームフィールドを処理する

分類Dev

モーダルのSymfony2フォームは処理されません

分類Dev

ページ上のSymfony2 / Twig複数フォーム処理

分類Dev

symfonyフォームのPOST処理

分類Dev

symfony2フォームの検証

分類Dev

Symfony2日時フォーム

分類Dev

Symfony2:フォームデータを処理する前にプレビューするための良いパターンは何ですか?

分類Dev

最後に別のURLにリダイレクトせずにSymfony2でフォームを処理できますか?

分類Dev

Angularjsフォーム処理

分類Dev

Symfony RESTAPI-無効なフォームを処理する方法

分類Dev

symfonyでフォームを処理できません

分類Dev

未設定のフォームファイル値Symfony2

分類Dev

Symfony2 + FOSUserBundle:2つのログインフォーム

分類Dev

Symfony2でのpluploadファイルのアップロードの処理

分類Dev

Symfony2フォーム要素にエラーを追加

分類Dev

フォームビルダーなしでSymfony2編集

分類Dev

symfony2フォームのカスケード検証

分類Dev

PUTフォームがSymfony2で更新されない

分類Dev

symfony2でフォームajaxを送信する方法は?

分類Dev

symfony2でフォームajaxを送信する方法は?

分類Dev

フォームの依存関係Symfony2

分類Dev

Symfony2のフォームのconfigureOptionsとsetDefaultOptionsの違い

分類Dev

Symfony2フォームからJSON構造へ

分類Dev

20億を超えるSymfony2フォーム番号入力

分類Dev

Symfony2コンテナ対応フォームタイプ

分類Dev

createFormBuilderを使用しないSymfony2フォームの検証

分類Dev

Symfony2ユニットテストフォームの送信

分類Dev

base.html.twigのSymfony2フォーム

分類Dev

送信後、Symfony2フォームは常に空です

Related 関連記事

  1. 1

    Symfony2で追加のフォームフィールドを処理する

  2. 2

    モーダルのSymfony2フォームは処理されません

  3. 3

    ページ上のSymfony2 / Twig複数フォーム処理

  4. 4

    symfonyフォームのPOST処理

  5. 5

    symfony2フォームの検証

  6. 6

    Symfony2日時フォーム

  7. 7

    Symfony2:フォームデータを処理する前にプレビューするための良いパターンは何ですか?

  8. 8

    最後に別のURLにリダイレクトせずにSymfony2でフォームを処理できますか?

  9. 9

    Angularjsフォーム処理

  10. 10

    Symfony RESTAPI-無効なフォームを処理する方法

  11. 11

    symfonyでフォームを処理できません

  12. 12

    未設定のフォームファイル値Symfony2

  13. 13

    Symfony2 + FOSUserBundle:2つのログインフォーム

  14. 14

    Symfony2でのpluploadファイルのアップロードの処理

  15. 15

    Symfony2フォーム要素にエラーを追加

  16. 16

    フォームビルダーなしでSymfony2編集

  17. 17

    symfony2フォームのカスケード検証

  18. 18

    PUTフォームがSymfony2で更新されない

  19. 19

    symfony2でフォームajaxを送信する方法は?

  20. 20

    symfony2でフォームajaxを送信する方法は?

  21. 21

    フォームの依存関係Symfony2

  22. 22

    Symfony2のフォームのconfigureOptionsとsetDefaultOptionsの違い

  23. 23

    Symfony2フォームからJSON構造へ

  24. 24

    20億を超えるSymfony2フォーム番号入力

  25. 25

    Symfony2コンテナ対応フォームタイプ

  26. 26

    createFormBuilderを使用しないSymfony2フォームの検証

  27. 27

    Symfony2ユニットテストフォームの送信

  28. 28

    base.html.twigのSymfony2フォーム

  29. 29

    送信後、Symfony2フォームは常に空です

ホットタグ

アーカイブ