質問

そのためのフィールドにエラーメッセージを表示したいと思います。エラーメッセージをフィールドに配置する方法は知っていますが、挿入された値がエラーメッセージ自体ではない場合、再保証後にチェックする動的な方法を見つけたいと思います。私は教義の注釈を使用しています。たとえば、フィールドが「タイトル」の場合、エラーメッセージは「タイトルを記入する必要があります!」になります。したがって、タイトルフィールドはもう空ではありません。再び[送信]をクリックします。これは有効です。すべてのフィールドをチェックしたくありませんif $entity->getTitle() == "The title must be filled" ...TwigとJQueryにエラーDivを表示しないことでこれを行うことができましたが、コントローラーからこれを行うより良い方法があるかどうかを知りたいですか?ありがとう

役に立ちましたか?

解決

あなたは間違った方法で何かを正しく行う方法を尋ねています...入力値があなたが処理したい値ではない場合、それは最初から値ではなかったはずです。そうは言っても、あなたにはあなたの理由があると確信しています...

聞く必要があります FormEvents::BIND_CLIENT_DATA エラー文字列に一致する場合は、フォームデータをクリアします。

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('title');
    $builder->get('title')->addEventListener(
        FormEvents::BIND_CLIENT_DATA,
        function(FilterDataEvent $event)
        {
            if ('The title must be filled' == $event->getData()) {
                $event->setData('');
            }
        },
    );

この動作をグローバルに適用したい場合は、拡張フォームタイプの拡張機能を使用してこのリスナーを添付する必要があります 'field'. 。また、Validatorを使用して現在のフィールドのすべての可能な検証エラーメッセージを内省し、これらを翻訳者に渡し、結果をイベントデータと比較する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top