しばらく 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 クラスでは使用できません。私が探しているのは、フォーム全体にデータトランスフォーマーを適用する方法です (しかし、これを行う方法が見つかりませんでした...)
- フォーム イベント。これにより、送信前に「名前」フィールドが編集されますが、変更を後で行いたいです (この方法では、ユーザーはそれらを変更できません)。
私が見逃した解決策はありますか?