入力フィールドのSymfony2エラーメッセージ
-
25-10-2019 - |
質問
そのためのフィールドにエラーメッセージを表示したいと思います。エラーメッセージをフィールドに配置する方法は知っていますが、挿入された値がエラーメッセージ自体ではない場合、再保証後にチェックする動的な方法を見つけたいと思います。私は教義の注釈を使用しています。たとえば、フィールドが「タイトル」の場合、エラーメッセージは「タイトルを記入する必要があります!」になります。したがって、タイトルフィールドはもう空ではありません。再び[送信]をクリックします。これは有効です。すべてのフィールドをチェックしたくありません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を使用して現在のフィールドのすべての可能な検証エラーメッセージを内省し、これらを翻訳者に渡し、結果をイベントデータと比較する必要があります。
所属していません StackOverflow