1
私はフォームとサブフォームを持っています。私は、デフォルトとして定義された制約値とルートフォームによって追加されたこれらの値をマージしたいと思います。symfonyフォームのデフォルトオプションと新しいオプションをマージする方法
マイサブフォーム:
class DatesPeriodType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('start', DateType::class, [
'constraints' => [
new Date(),
]
])
->add('end', DateType::class, [
'constraints' => [
new Date(),
]
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefault('error_bubbling', false)
->setDefault('constraints', [
new Callback([$this, 'validate']),
])
;
}
}
私は新しい制約オプションを使用してルートに私のフォームを追加します。予想通り
$builder
->add('judgmentPeriod', DatesPeriodType::class, [
'constraints' => [
new Valid(),
new Callback([
'callback' => [$this, 'datesAreEmpty'],
'groups' => ['insertionPeriod'],
]),
new Callback([
'callback' => [$this, 'validDates'],
'groups' => ['judgmentPeriod'],
]),
]
])
、制約のオプションは、現在3つの要素が含まれているとコールバックの制約がマージされていません。 私は、このソリューションを試してみました:Default Options for symfony 2 forms are being overridden not mergedが、コールバックメソッドが
おかげで呼ばれるように思わないで、Corentin