この場合、Symfony Form Validation の使用方法を理解するのに苦労しています:
化学式を文字列入力として使用して、化学化合物を保存するフォームに取り組んでいます。「H2O」などのその入力は、化学要素 (「H」、「H」、「O」) のコレクションに DataTransformed され、新しく生成された文字列表現 (「H2O」) と共に式として保存されます。これにより、式の有効性が保証されます。たとえば、「OH2」は保存できません。これは、式の自動生成がこれらの問題を考慮して「H2O」に変更するためです。Compound->setFormula() へのパブリック アクセスはしたくありません。これは、含まれている要素との不一致につながるためです。
ここで、「H2Oxxxx」などの入力が「H2O」として保存されていないことを確認したいのですが、入力が実際に見つかった式と異なることに気付かずに、「OH2」は受け入れて「H2O」として保存する必要があります。そのために、制約「isValidCompound」とバリデーター「isValidCompoundValidator」を使用しようとしています。(簡単な?) 質問は次のとおりです: isValidCompoundValidator から POST データにアクセスして、自動的に作成された Formula と比較する方法は? Form データが自動的に入力されるため、通常は $compound->getFormula() を使用してアクセスできます。私の場合、上記の理由により、見つかった要素を使用してのみ埋められます。
$request->request->all(); を使用して POST データに直接アクセスしようとするだけでよいのでしょうか? それとも、クラスの別の設定が望ましいですか?
どうもありがとう!