Symfony2アプリケーションの複数の場所に日付と時刻のペアを入力する必要があります。これを実現するために、custom_datetime
フォームタイプを作成しました。custom_datetime全体にフラグがある場合は必須のtime
ままにしながら、時々必須かどうかを判断したいと思います。date
required
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]);
残念ながら、time
HTMLでレンダリングすると、フィールドは必要な属性を取得します。
custom_datetime
親フォームが時間フィールドに関する「必須」情報を渡すことができるようにするには、どうすればよいですか?