Symfony 7.3中FormType渲染报“Array to string conversion”错误的解决方案求助
Symfony 7.3中FormType渲染报“Array to string conversion”错误的解决方案求助
各位好!我最近把Symfony项目从6.1版本升级到7.3后,表单渲染这块卡壳了,折腾了好几天都没找到解决办法,特意来这儿求助!
先说说之前在6.1里的正常写法,我是这么在Twig模板里渲染表单的:
{{ form_start(form, {'attr': {'id': 'form-add-meeting'}}) }} {{ form_widget(form) }} <label for="">Date *</label> <input class="form-control" type="text" id="datepicker" name="datepicker" /> <label class="time-selector mt-3" for="">Horaire *</label> <input type="time" name="time" class="form-control time-selector" id="time-selector-input" /> {{ form_end(form) }}
结果升级到7.3之后,一访问页面就抛出这个错误:
"An exception has been thrown during the rendering of a template ("Warning: Array to string conversion") in form_div_layout.html.twig at line 374"
我翻遍了各种论坛和文档都没找到对应的解决方案,试过用form_row逐个字段渲染不行,form_label也不管用。目前唯一能让页面正常显示的方式是每个字段都用form_widget,但这样我就得手动在模板里处理错误提示、标签这些内容,效率太低了,完全不是理想的方案。
下面是我用的FormType代码:
public function buildForm(FormBuilderInterface $builder, array $options): void { $builder ->add('jump', JumpAutocompleteField::class) ->add('purchase_custom_link', TextType::class, [ 'mapped' => false, 'required' => false, 'label' => 'N° Sport Découverte', 'attr' => [ 'class' => 'form-control mb-3' ] ]) ->add('purchase_item', OrderLinkAutocompleteField::class) ->add('client_lastname', TextType::class, [ 'required' => false, 'label' => 'Nom', 'attr' => [ 'class' => 'form-control mb-3', 'maxlength' => 60 ] ]) ->add('client_name', TextType::class, [ 'required' => false, 'label' => 'Prénom', 'attr' => [ 'class' => 'form-control mb-3', 'maxlength' => 60 ] ]) ->add('client_email', EmailType::class, [ 'required' => false, 'label' => 'Adresse email', 'attr' => [ 'class' => 'form-control mb-3', 'maxlength' => 120 ] ]) ->add('client_phone', TextType::class, [ 'required' => false, 'label' => 'Numéro de téléphone', 'attr' => [ 'class' => 'form-control mb-3', 'maxlength' => 10 ] ]) ->add('client_age', TextType::class, [ 'required' => false, 'label' => 'Âge', 'attr' => [ 'class' => 'form-control mb-3', 'maxlength' => 2, ] ]) ->add('client_height', TextType::class, [ 'required' => false, 'label' => 'Taille (cm)', 'attr' => [ 'class' => 'form-control mb-3', 'maxlength' => 3 ] ]) ->add('client_weight', TextType::class, [ 'required' => false, 'label' => 'Poids (kg)', 'attr' => [ 'class' => 'form-control mb-3', 'maxlength' => 3 ] ]); }
有没有朋友碰到过类似的情况?或者能帮我分析下这个“数组转字符串”的错误可能出在哪个环节吗?麻烦大家支个招,谢谢啦!
内容来源于stack exchange
相关产品推荐
相关产品推荐

