gpt4 book ai didi

symfony-forms - 如何在 Symfony 3 中使用自定义 FormType

转载 作者:行者123 更新时间:2023-12-04 06:01:18 24 4
gpt4 key购买 nike

我正在接受培训,但我在 symfony 3 下

我遇到了这个错误

Expected argument of type "string", "Test\FrontBundle\Form\Type\SheetType" given

SheetType.php 上的代码是

<?php

namespace Test\FrontBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\FormBuilderInterface;


class SheetType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name',null,array('label'=>'Titre de l\'album'))
->add('type')
->add('artist')
->add('duration')
->add('released', DateType::class)
;
}
}

在我的 SheetController.php 上,我从我的 Controller 中获取我一直不知道如何解决这个问题,否则我会出错

 public function createAction(Request $request)
{
$form = $this->createForm(new SheetType());

$form->handleRequest($request);

if($request->isMethod('post') && $form->isValid()){
$em = $this->getDoctrine()->getManager();
$em->persist($form->getData());
$em->flush();
return $this->redirect($this->generateUrl('test_front_sheet_list'));
}
return $this->render('TestFrontBundle:Sheet:create.html.twig', array('form' => $form->createView()));
}

最佳答案

从 symfony 2.8 开始,您必须在创建表单或表单生成器时传递一个完整的限定类名实例作为参数,它不再采用 FormTypeInterface 的实例。

参见 https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.8.md

所以你应该使用 $form = $this->createForm(SheetType::class); 代替。

关于symfony-forms - 如何在 Symfony 3 中使用自定义 FormType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35677896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com