Как я могу использовать оператор if внутри массива? - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь сделать оператор if внутри массива:

  $formBuilder->add('getTimestamp', DateType::class, array(
              'widget' => 'single_text',
               if($target == "new"){
                  'data' => new \DateTime(),
                }
                'attr' => array('class' => 'form-control', 'style' => 'line-height: 20px;'), 'label' => $field['fieldName'],
               ));

Но я получаю сообщение об ошибке

(1/1) ParseError

синтаксическая ошибка, неожиданное 'if' (T_IF), ожидаемое ')'

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018
'data' => $target == 'new' ? new \DateTime() : ''
0 голосов
/ 22 декабря 2018

Проблема в if внутри вашего массива.Это не правильный синтаксис php.Вы можете переместить это снаружи.

$options = [
     'widget' => 'single_text',
     'attr' => array('class' => 'form-control', 'style' => 'line-height: 20px;'), 'label' => $field['fieldName'],
];
if($target == "new"){
    $options['data'] = new \DateTime();
}

$formBuilder->add('getTimestamp', DateType::class, $options);
...