如何替换数组中的变量?

mar*_*ila -1 php arrays oop formbuilder symfony

我正在尝试减少一些代码,以使其看起来更干净:

  if($target == "edit"){
                $formBuilder->add('getTimestamp', DateType::class, array(
                  'widget' => 'single_text',
                  'format' => 'dd.MM.yyyy',
                  'html5' => false,
                  'attr' => array('class' => 'js-date form-control', 'style' => 'line-height: 20px;'), 'label' => $field['fieldName'],
                ));
              } else {
                $formBuilder->add('getTimestamp', DateType::class, array(
                  'widget' => 'single_text',
                  'data' => new \DateTime(),
                  'format' => 'dd.MM.yyyy',
                  'html5' => false,
                  'attr' => array('class' => 'js-date form-control', 'style' => 'line-height: 20px;'), 'label' => $field['fieldName'],
                ));

              }
Run Code Online (Sandbox Code Playgroud)

这是我的方法:

if($target == "edit"){
      $newdate = ['data' => new \DateTime()];
 } 


 $formBuilder->add('getTimestamp', DateType::class, array(
                'widget' => 'single_text',
                $newdate,
                'format' => 'dd.MM.yyyy',
                'html5' => false,
                'attr' => array('class' => 'js-date form-control', 'style' => 'line-height: 20px;'), 'label' => $field['fieldName'],
              ));
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试减少代码时,未在我的字段中创建日期。

Mic*_*iat 6

尝试不同的方法。修改并将选项作为数组传递。

$options =  [
    'widget' => 'single_text',
    'format' => 'dd.MM.yyyy',
    'html5'  => false,
    'attr'   => ['class' => 'js-date form-control', 'style' => 'line-height: 20px;'], 'label' => $field['fieldName'],
];

if ($target == 'edit') {
    $options['data'] = new \DateTime();
}

$formBuilder->add('getTimestamp', DateType::class, $options);
Run Code Online (Sandbox Code Playgroud)