2

しばらく Symfony2 を使用していると、現在の開発で問題が発生しました。フォームから送信されたデータを検証する前に編集する必要があります。状況は次のとおりです。

  • 私のフォームには、「名前」と「ドメイン」という 2 つの重要なフィールドが含まれています。
  • 「ドメイン」は、プロパティ「ドメイン名」を持つエンティティを指します。

ここで、"name" が "mywebsite" (フォームを使用) に設定され、ドメインが "mydomain.com" (データベース内のドメインを選択するエンティティ フィールド) に設定されているとします。

  • フォーム[名前]:「私のウェブサイト」
  • form[domain] : オブジェクト (domain_name => "mydomain.com")

私が達成したいのは、選択したドメインに応じて「名前」フィールドの値を変更することです。取得するために、「domain_name」を「name」に追加したい:

  • フォーム[名前] : 「mywebsite.mydomain.com」
  • form[domain] : オブジェクト (domain_name => "mydomain.com")

私は2つの解決策を見つけましたが、それらは状況に合わないようです:

  • データ トランスフォーマー。1 つのフィールドでのみ機能するようですが、「名前」を編集するには、フォームから「ドメイン」エンティティにアクセスする必要がありますが、これは Data Transformer クラスでは使用できません。私が探しているのは、フォーム全体にデータトランスフォーマーを適用する方法です (しかし、これを行う方法が見つかりませんでした...)
  • フォーム イベント。これにより、送信前に「名前」フィールドが編集されますが、変更を後で行いたいです (この方法では、ユーザーはそれらを変更できません)。

私が見逃した解決策はありますか?

4

1 に答える 1