Ich habe Code, der mehr oder weniger so aussieht:
Es ist nicht mein tatsächlicher Code, sondern nur das Konzept dessen, was ich versuche zu tun:
Ich habe ein Formular, in dem jedes einzelne Feld erforderlich ist und dann einige Überprüfungen auf den Werten mehrerer Felder in Kombination ausgeführt werden. überschreiben ">class testForm extends AbstractType
{
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefault(
'constraints',
[new Callback(
['callback' => function (
$payload,
ExecutionContextInterface $context
)
{
$data = $context->getObject()->getData();
if (strcasecmp($data['field1'], $data['field2']))
{
$context
->buildViolation('fields must be equal')
->atPath('[field1]')
->addViolation();
}
}
]
)]
);
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('field1', TextType::class, ['constraints' => [new NotBlank]])
->add('field2', TextType::class, ['constraints' => [new NotBlank]]);
}
}
< /code>
Das Problem, das ich mit diesem Code habe, ist, dass es eine Mitteilung, wenn Sie mit leeren Feldern einreichen Da PHP 8.0).
afaict Dies liegt daran hat ausgefallen. Wenn man sich die Symfony -Dokumentation ansieht, gibt es eine gültige Einschränkungen, die genau das zu tun scheint, aber es scheint nur mit Entitäten zu funktionieren (mein Formular verwendet keine Entität, sondern ein einfaches DTO).
Ich wundere mich weiter>
Validieren Sie vor dem Elternteil Kinderform -DTOs ⇐ Php
-
- Similar Topics
- Replies
- Views
- Last post