如何解决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,]
);
}
}
这呈现为:
HTML 如下所示:
<input type="checkBox" id="eventForm_alarms_0_trigger_interval_invert" name="eventForm[alarms][0][trigger][interval][invert]" value="1">
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。