Set default value on Datetime field in symfony2 form

后端 未结 4 2060
伪装坚强ぢ
伪装坚强ぢ 2020-12-10 00:42

I have a form containing several fields. One of them is a Datetime field. How to define a default value for that field?

I\'ve tried setting a value on the related e

4条回答
  •  伪装坚强ぢ
    2020-12-10 01:10

    This solution doesn't require modifying your entity object.

        $builder->add('myDate', DateTimeType::class, [
            'label' => 'My Date',
            'required' => false,
            'date_widget' => 'single_text',
            'time_widget' => 'single_text',
            'date_format' => 'dd/MM/yyyy'
        ]);
    
        $builder->get('myDate')->addModelTransformer(new CallbackTransformer(
            function ($value) {
                if(!$value) {
                    return new \DateTime('now +1 month');
                }
                return $value;
            },
            function ($value) {
                return $value;
            }
        ));
    

    This solution applies the behaviour to just this form, it does not couple this behaviour to the entity itself. You might have several forms that modify an entity with different required behaviours. Some require a default date, others don't.

提交回复
热议问题