私のフォームには、必須オプションが false に設定されたフィールドがあります。このフィールドはオプションです。
ただし、フィールドが使用されている場合は、このフィールドに notBlank 検証を行いたいと思います。
@Assert\NotBlank(
* message="The name field can't be blank",
* groups={"flow_poemDataCollector_step1"}
* )
現在、検証制約 NotBlank を使用することはできません。フィールドが使用されていない場合にフォームの検証が失敗するからです。
onPostBindRequest リスナーのフィールドにランダムな値を追加しようとしましたが、複雑でうまく機能しませんでした。それが正しい方法であるかどうかもわかりません。
これが私が試したことです: ($form は Symfony\Component\Form\FormInterface オブジェクトです)
$form = $event->getForm();
$formData = $form->getData();
$formData->setUserName("foo");
$form = $form->setData($formData);
しかし、バインドされていないフォームで isValid() を呼び出せないというエラーが表示されます。
どうすれば目標を達成できますか? すなわち。場合によってのみフィールドを検証します。