DateIntervalType:缺少“反转”标签

问题描述

我正在我的 symfony 应用程序中构建一个表单。我有一个在 Symfony 4.4.18 中构建的 DateIntervalType 表单。这是我的表单类型:

<?PHP

declare(strict_types=1);

namespace App\Form\Type;

use App\Model\Trigger;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateIntervalType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

/**
 * Notification type consisting of a type and an interval
 */
class TriggerType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder,array $options)
    {
        $builder->add(
            'type',ChoiceType::class,[
                'choices' => [
                    _('on time') => Trigger::MIN0,_('5 min before') => Trigger::MIN5,_('custom date time') => Trigger::CUSTOM_DATE_TIME,_('custom interval') => Trigger::CUSTOM_INTERVAL,],'label_attr' => ['class' => 'hidden'],'placeholder' => false,]
        )->add('interval',DateIntervalType::class,[
                'widget' => 'integer','with_years' => false,'with_months' => false,'with_days' => true,'with_hours' => true,'with_minutes' => true,'with_invert' => true,'labels' => [
                    'invert' => _('before'),// <-- this does not work
                ],'required' => false,]
        )

        // set default interval to 15 minutes
        $builder->get('interval')->addModelTransformer(
            new CallbackTransformer(
                function ($value) {
                    if (!$value) {
                        $interval = new \DateInterval('PT15M')
                        $interval->invert = true;
                        return $interval;
                    }

                    return $value;
                },function ($value) {
                return $value;
            }
            )
        );
    }

    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefaults(
            [
                'data_class' => Trigger::class,]
        );
    }
}

这呈现为:

form

如您所见,底部一个“反转”复选框,但没有标签

HTML 如下所示:

<input type="checkBox" id="eventForm_alarms_0_trigger_interval_invert" name="eventForm[alarms][0][trigger][interval][invert]" value="1">

知道为什么没有标签吗?这是一个错误吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)