値フィールドに応じて、私は私のフィールドにカスタムフィールドの検証を追加しようとしているが、私はそれを動作させることができない... ここでは私のコードです:addError
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('somefields', ChoiceType::Class, array(
'...'
))
->add('tel', TextType::class, array(
'label' => "Téléphone :",
'required' => false
))
->add('cell', TextType::class, array(
'label' => "Port. :",
'required' => false
))
;
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) use ($options) {
$data = $event->getData();
$form = $event->getForm();
if (empty($data['tel']) && empty($data['cell'])) {
$form->get('tel')->addError(new FormError('error message'));
}
});
}
何I必要があります: 両方のフィールドが空白の場合は、少なくとも1つのフィールドを埋める必要があることを警告してください... 私は数日間別のものを試していますが、解決策が見つかりません。答えは簡単だと思います...
ありがとうございました。それは意志かどうかという特定の、それが動作するかどうかを参照してください
if (($form->get('tel')->getData() == '') && ($form->get('cell')->getData() == '')) {
$form->get('tel')->addError(new FormError('error message'));
}
ない:
あなたの答えはありがとう、違いはありませんが、フォームはまだ有効です。 – ThEBiShOp
ああ、私は問題を見る。 'tel'と 'cell'の両方が '' required '=> false'に設定されています。 「電話」を追加して「タイプ」を「自宅/ビジネス/セル」に設定し、それを必要とするようにデザインを変更できるかどうかは疑問です。それはよりよい解決策かもしれません。これは単なる提案です。 –