1

Symfony2アプリケーションの複数の場所に日付と時刻のペアを入力する必要があります。これを実現するために、custom_datetimeフォームタイプを作成しました。custom_datetime全体にフラグがある場合は必須のtimeままにしながら、時々必須かどうかを判断したいと思います。daterequired

class DateTime extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('date', 'text', [
                'attr' => ['required' => true] // Here I maybe should inherit what is passed by the parent form
            ])
            ->add('time', 'text', [
                'attr' => ['required' => $options['time_required']]
            ])
        ;
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'time_required' => false
        ));
    }

    public function getName()
    {
        return 'custom_datetime';
    }
}

その後custom_datetime、他の形式によるものです。現在、私は次のように使用しています。

// date should be entered, time should not -- this does not currently work
$builder->add('dt', 'custom_datetime', ['required' => true, 'time_required' => false]);
// date + time should be entered
$builder->add('dt', 'custom_datetime', ['required' => true, 'time_required' => true]);
// neither of date or time is required
$builder->add('dt', 'custom_datetime', ['required' => false]);

残念ながら、timeHTMLでレンダリングすると、フィールドは必要な属性を取得します。

custom_datetime親フォームが時間フィールドに関する「必須」情報を渡すことができるようにするには、どうすればよいですか?

4

1 に答える 1

0

attrこのために属性を使用しないでください。

$builder
    ->add('time', 'text', array('required' => true))
于 2013-02-08T02:25:53.847 に答える