検索

ホームページ  >  に質問  >  本文

symfony3 - FormBuilder なしで symfony を使用することは可能ですか?

フォームの場合、フロントエンドで設計されたページをネストに使用できますか?それとも FormBuilder のみを使用してフォームを作成できますか?自分で書いたページから投稿されたデータをどのように検証し、加工するのか?

天蓬老师天蓬老师2740日前451

全員に返信(4)返信します

  • 漂亮男人

    漂亮男人2017-05-16 16:45:53

    フォーム作成にはFormBuilderを使った方が良い気がします

    1. CSRF攻撃を防ぐためのトークンがあります

    2. オブジェクトを組み合わせてデータを取得する方が便利です

    3. 認証がさらに便利になりました

    初めて触ったときは、FormBuilder は少し面倒に感じるかもしれませんが、慣れると非常に使いやすいようです

    返事
    0
  • 怪我咯

    怪我咯2017-05-16 16:45:53

    実際、どのようなレイアウトが必要でも、カスタマイズしたり、フォームのテーマを変更したり、一部のフィールドをカスタマイズしたりすることができます。自分で作成した場合は、それを確認してください。自分自身!

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 16:45:53

    最初の 2 つの質問に答えるために、フロントエンドで設計されたページを使用して非常に複雑なフォームを作成することはもちろん可能ですが、必ずしも FormBuilder が必要というわけではありません。

    3 番目の質問、@xxfaxy は、自分で検証する必要があると言いました。私の意見では、Symfony は Validation コンポーネントを提供していますが、Validation を使用する場合、それは完全な自己検証ではないと思います。 Symfony 公式 Web サイトを参照し、ページの最後までスクロールして、「値と配列の検証」セクションを参照してください。

    フレームワークは多くの機能を提供しますが、結局のところ、それらの機能は特殊な場合にはフレームワークに制限されない普遍的なものであると思います。

    返事
    0
  • 迷茫

    迷茫2017-05-16 16:45:53

    全然大丈夫です!

    実際、あなたの質問の核心は投稿データ(配列タイプ)をエンティティ(エンティティタイプ)にマッピングする方法です。

    Form は Entity オブジェクトと Request オブジェクトを抽象化したものです。つまり、Entity のユーザー名が Form コンポーネントによって抽象化された後の出力は、<input name="entityName[property]" /> のようになります。ここで、Property はエンティティのプロパティ (フィールド名) です。handleRequest 中に、フロントエンドによって送信された値はエンティティのプロパティ属性に自動的にマッピングされます。Form はエンティティをインタラクティブにするためのものであることがわかります。

    それでは、Form コンポーネントを使用しない場合はどうなるでしょうか?

    Symfony は、配列をエンティティにマッピングすることもできる Serializer コンポーネントも提供します:

    フロントエンド ページ:

    リーリー

    あなたの組織:

    リーリー

    フォームをエンティティにマッピングします:

    リーリー

    フォームを使用するのと同じようにエンティティを認証します:

    リーリー

    参考: http://symfony.com/doc/current/components/serializer.html#deserializing-an-object

    返事
    0
  • キャンセル返事