Как я могу использовать оператор if внутри массива?

Я пытаюсь сделать оператор 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), ожидание ')'


person Community    schedule 22.12.2018    source источник
comment
Возможный дубликат оператора If в объявлении массива... это возможно?   -  person Dez    schedule 22.12.2018


Ответы (1)


Проблема в том, что 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);
person dbrumann    schedule 22.12.2018